【问题标题】:Save Array to plist将数组保存到 plist
【发布时间】:2013-03-18 16:02:04
【问题描述】:

我正在尝试将一些项目存储到pList。这是数组循环:

for (id obj in items)
NSLog(@"obj: %@", obj);

输出 NSLog:

2013-03-27 13:00:40.072 mycode[47436:c07] obj: Red
2013-03-27 13:00:40.073 mycode[47436:c07] obj: Blue
2013-03-27 13:00:40.073 mycode[47436:c07] obj: Green

// arrayWithObjects 有效。但我不知道如何(循环?)通过我的项目保存到 plist 文件中......

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
        NSString *documentsDirectory = [paths objectAtIndex:0];
        NSString *path = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];


    NSFileManager *filemgr;
    filemgr = [NSFileManager defaultManager];

    if ([filemgr fileExistsAtPath: path]) {
        NSLog(@"%@", path);

    NSMutableDictionary *plist = [[NSDictionary dictionaryWithContentsOfFile:path] mutableCopy];
    NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
    newArray = [NSArray arrayWithObjects:@"Red", @"Green", @"Blue" nil]; // <--- WORKS!
    newArray = [NSArray arrayWithObjects:items, nil]; // <-- ? 
    [plist setObject:newArray forKey:@"Hi"];
    [plist writeToFile:path atomically:YES];
    [plist release];


    } else {
        NSLog(@"File not found");
    }

    [filemgr release]; 

【问题讨论】:

    标签: xcode arrays loops nsarray plist


    【解决方案1】:

    也许这段代码对你有帮助。

    NSMutableArray *newArray = [[[NSMutableArray alloc] init] autorelease];
    NSMutableArray *targetArray = [[[NSMutableArray alloc] init] autorelease];
    
    newArray = [NSArray arrayWithObjects:@"Red", @"Green", @"Blue" nil];
    for(int i=0;i<newArray.count;i++)
    {
     [targetArray addObject:[newArray objectAtIndex:i]];
    
    }
    [plist setObject:targetArray forKey:@"Hi"];
    [plist writeToFile:path atomically:YES];
    

    或其他方法

    NSMutableArray *targetArray = [[[NSMutableArray alloc] init] autorelease];
    
    for (id obj in items)
    {
     [targetArray addObject:items];
     }
    [plist setObject:targetArray forKey:@"Hi"];
    [plist writeToFile:path atomically:YES];
    

    希望对你有帮助!!!

    【讨论】:

      猜你喜欢
      • 2013-12-15
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多