Iphone 如何写入数据但不重复plist?
下面的代码已正确写入plist,但无法检测是否要写入相同的数据 如何做到这一点还没有加入数据重复加入Iphone 如何写入数据但不重复plist?,iphone,objective-c,xcode,nsarray,plist,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:woona
-(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];
如果我理解你的问题: 使plist成为字典,而不是数组,然后将现有plist读入
NSMutableDictionary
,添加新的/更新的值,然后将其写出。或者代替
[plist addObject:nameDictionary
使用
对不起,我不明白你想问什么。请您重新表述您的问题。这仅仅意味着myData.plist不会写入重复的数据。仅当列表中没有表示同一对象的字典时,您才想加载数组、plist并将nameDictionary插入其中?如果是这样的话,是否有一个特定的键字段或其他任何东西可以使发现重复项稍微容易一些?我已经尝试过,但错误“NSInvalidArgumentException”,原因:“-[\uu nsarray addEntriesFromDictionary:]:发送到实例0x5a84150的未识别选择器”我已经添加到答案中以解决此问题。仔细查看错误消息,它说NSArray没有addEntriesFromDictionary:方法。我尝试了您的新方法,但仍然出现相同的错误“NSInvalidArgumentException”,原因:'-[\uu NSArrayM addEntriesFromDictionary:::]:未识别的选择器发送到实例0x5a5b5d0'抱歉,我误读了您的问题/代码。NSInvalidArgumentException是由于尝试将可变字典方法添加到数组中而导致的。我没有使用containsObject:检查数据是否存在?如果没有重复数据,请保存数据。如果是,你怎么做?
[plist addEntriesFromDictionary:nameDictionary];