Как я добавляю новый объект к plist?

Различные продукты базы данных дадут Вам различные ответы; но Вы собираетесь для вреда при переносе этого очень далеко. Вы - далеко более обеспеченный выбор столбцов, которые Вы хотите, и предоставление им Ваши собственные псевдонимы, таким образом, идентификационные данные каждого столбца совершенно ясны, и можно сказать им независимо в результатах.

5
задан Reed Olsen 19 October 2009 в 01:07
поделиться

2 ответа

С Какао вам нужно прочитать файл в памяти, добавить новый объект словаря и записать его обратно в файловая система. Если вы используете XML-список, вы можете довольно легко проанализировать его и постепенно записать в файл, но он также будет немного больше, поэтому вряд ли это того стоит.

Если переписывание списка занимает слишком много времени , вам следует вместо этого использовать базу данных (возможно, через Core Data). Если файл не большой, я сомневаюсь, что это будет проблемой даже с объемом памяти iPhone и скоростью записи на флеш-память.

5
ответ дан 13 December 2019 в 19:30
поделиться

(Я скопировал это для тех, кто не хочет переходить по ссылке из аналогичного вопроса, на который я ответил здесь: Вопрос о том, как получить данные из plist и как это должно быть layout )

Вот два метода для чтения и записи значений из списка с помощью NSDictionary:

- (NSMutableDictionary*)dictionaryFromPlist {
    NSString *filePath = @"myPlist.plist";
    NSMutableDictionary* propertyListValues = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
    return [propertyListValues autorelease];
}

- (BOOL)writeDictionaryToPlist:(NSDictionary*)plistDict{
    NSString *filePath = @"myPlist.plist";
    BOOL result = [plistDict writeToFile:filePath atomically:YES];
    return result;
}

, а затем где-нибудь в вашем блоке кода:

// Read key from plist dictionary
NSDictionary *dict = [self dictionaryFromPlist];
NSString *valueToPrint = [dict objectForKey:@"Executable file"];
NSLog(@"valueToPrint: %@", valueToPrint);

// Write key to plist dictionary
NSString *key = @"Icon File";
NSString *value = @"appIcon.png";
[dict setValue:value forKey:key];

// Write new plist to file using dictionary
[self writeDictionaryToPlist:dict];
3
ответ дан 13 December 2019 в 19:30
поделиться