iPhone dev - запись / чтение массива объектов в файл - PullRequest
2 голосов
/ 28 июля 2011

У меня есть массив listOfContactsToLay - он содержит объекты Contact с 3 строковыми полями. Как я могу записать этот массив в файл успешно? Вот что у меня есть:

-(NSString*)fPath
{
    return [DocumentsDirectory() stringByAppendingPathComponent:@"quickdial.xml"];
}

//SERIALIZATION
- (void) save:(NSMutableArray*)array
{

   [NSKeyedArchiver archiveRootObject:array toFile:[self fPath]]; 

    NSLog(@"List of contacts been written in file");

}

// get that array back
- (NSMutableArray*)load
{
    NSLog(@"List of contacts is being read from file");
    return [NSKeyedUnarchiver unarchiveObjectWithFile:[self fPath]];

}

И, конечно, следующее не работает:

-(IBAction)doneWithContacts {
    [ContactManager createXmlInMydocumentsDirectory];
[self save:listOfContactsToLay];
    NSLog(@"List of contacts to lay saved!");
    [self.parentViewController dismissModalViewControllerAnimated:YES];

}

выдает недопустимое исключение аргумента.

Что мне делать? Как мне сериализовать MSMutableArray моих объектов? Спасибо

Ответы [ 3 ]

1 голос
/ 28 июля 2011

Соответствует ли ваш класс Contact протоколу NSCoding.

Подробнее .

1 голос
/ 28 июля 2011
0 голосов
/ 28 июля 2011

Вам небезразличен формат файла? Если нет, то почему бы не использовать встроенные методы класса NSArray?

+ (id)arrayWithContentsOfFile:(NSString *)aPath;
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag;

См. Справочник классов NSArray .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...