Сохранение файлов в какао - PullRequest
5 голосов
/ 29 мая 2010

Я уверен, что это действительно простой вопрос, но я все еще плохо знаком с какао. Мне нужно сохранить данные моих приложений. Приложение имеет 4 текстовых поля, и каждое поле должно быть сохранено в один файл. Затем, когда вы открываете файл, ему нужно знать, что входит в какое поле. Я действительно застрял с этим. Кроме того, я знаю, как использовать панель сохранения.

1 Ответ

9 голосов
/ 29 мая 2010

Удобным способом было бы использовать PLists :

NSDictionary *arr = [NSDictionary dictionaryWithObjectsAndKeys:
                      string1, @"Field1", string2, @"Field2", nil];
NSData *data = [NSPropertyListSerialization dataFromPropertyList:arr
                format:NSPropertyListXMLFormat_v1_0 errorDescription:nil];

NSSavePanel *panel = [NSSavePanel savePanel];

NSInteger ret = [panel runModal];
if (ret == NSFileHandlingPanelOKButton) {
    [data writeToURL:[panel URL] atomically:YES];
}

Для десериализации:

NSData       *data = [NSData dataWithContentsOfURL:urlOfFile];
NSDictionary *dict = [NSPropertyListSerialization propertyListFromData:data
                       mutabilityOption:NSPropertyListImmutable
                       format:nil errorDescription:nil];
NSString *string1 = [dict objectForKey:@"Field1"];
// ... etc.
...