如何写入数据但不重复plist?

时间:2011-09-04 01:26:56

标签: iphone objective-c xcode nsarray plist

以下代码已正确写入plist,但无法检测是否有相同的数据写入。

如何做到这一点还没有加入数据来重复加入。

-(void)saveData{

    // Create the new dictionary that will be inserted into the plist.
    NSMutableDictionary *nameDictionary = [NSMutableDictionary dictionary];
    [nameDictionary setValue:wooname forKey:@"wooname"];
    [nameDictionary setValue:woodata forKey:@"woodata"];
    [nameDictionary setValue:woojclass forKey:@"woojclass"];
    [nameDictionary setValue:woojtime forKey:@"woojtime"];
    [nameDictionary setValue:woojpin forKey:@"woojpin"];
    [nameDictionary setValue:woojsps forKey:@"woojsps"];
    [nameDictionary setValue:woojspall forKey:@"woojspall"];
    [nameDictionary setValue:wooUrl forKey:@"wooUrl"];

    NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *plistPath = [rootPath stringByAppendingPathComponent:@"myData.plist"];
    NSMutableArray *plist = [NSMutableArray arrayWithContentsOfFile:plistPath];
    if (plist == nil) plist = [NSMutableArray array];
    [plist addObject:nameDictionary];

    [plist writeToFile:plistPath atomically:YES];
    [plist insertObject:nameDictionary atIndex:0];

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题:

使plist成为字典而不是数组然后将现有的plist读入NSMutableDictionary,添加新的/更新的值,写出来。或者代替

[plist addObject:nameDictionary

使用

[plist addEntriesFromDictionary:nameDictionary];