Как записать данные, но не повторять плист? - PullRequest
0 голосов
/ 04 сентября 2011

Следующий код правильно записал 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 Ответ

2 голосов
/ 04 сентября 2011

Если я понимаю ваш вопрос:

Сделайте plist словарем, а не массивом, затем прочитайте существующий plist в NSMutableDictionary, добавьте новые / обновленные значения, запишите его.Или вместо

[plist addObject:nameDictionary

используйте

[plist addEntriesFromDictionary:nameDictionary];
...