Вопрос по ios, objective-c – Хранение и извлечение из Plist [дубликата]

4

Possible Duplicate:
iOS: store two NSMutableArray in a .plist file

Я всегда воздерживался от использования списков, поскольку я не совсем уверен, как их использовать.

Может ли кто-нибудь датьsimple пример кода использования plist? Я заинтересован в сохраненииNSArray или жеNSDictionary в список, а затем получить его позже.

Есть ли какие-либо преимущества / недостатки для храненияNSArray илиNSDictionary? Кроме того, существуют ли какие-либо правила в отношении того, что вы можете или не можете хранить в списке?

Списки рассылки не могут хранить все типы данных, только строки, числа, логические значения, даты, данные, массивы и словари. Нет огромного преимущества словаря над массивом - если вы хотите, чтобы именованные ключи использовали словарь, и если вы хотите упорядоченный список, используйте массив. EricS
Это отвечает только на половину вопроса, но все равно спасибо. Liam George Betsworth

Ваш Ответ

1   ответ
11

ачения:

NSArray NSMutableArray NSDictionary NSMutableDictionary NSData NSMutableData NSString NSMutableString NSNumber NSDate

С NSDictionary вы можете хранить в списке ассоциативный массив, составленный из некоторой пары ключ-значение. Используйте NSArray, если вы хотите сохранить только ряд данных.

Чтобы сохранить один из объектов выше в файле plist, просто напишите:

- (NSString *)dataFilePath {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    return [documentsDirectory stringByAppendingPathComponent:@"yourFileNameHere"];
}

 //Write to the plist

 [myArray writeToFile:[self dataFilePath] atomically:YES];

 //Read from the plist

 if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
     NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];
 }
Спасибо, это очень хорошо отвечает на мой вопрос. Еще одна вещь, хотя, когда я звонюwriteToFile:atomically: Я пишу по всему списку, а не просто добавляю данные в конец файла, верно? Liam George Betsworth
Да, вы правы. Если вы хотите добавить данные в старый массив, вы должны сделать это вручную. Загрузите массив, добавьте и перепишите.

Похожие вопросы