2013-07-19 4 views
0

Я хочу создать структуру или объект, а затем сохранить его в файле, но я смущен для этого. Вы показываете шаги?Запись в файл двоичный код в Xcode

Я попытался использовать метод writeToFile, но это не очень хорошее решение для меня, потому что я хочу написать структурированный файл, где есть разные поля (имя, фамилия, поле bool ...).

Я не хочу использовать базу данных

ответ

0

То, что вы, вероятно, хотите сделать, это создать NSDictionary или NSMutableDictionary (который содержит ключевые спариваний/значение), а затем записать его в файл. Вот быстрый и грязный образец.

Сначала определите NSDictionary ...

@property (nonatomic, strong) NSDictionary *someInfo; 

Тогда следующая функция будет искать файл. Если файл существует, он будет считывать его в NSDictionary; и если файл не существует, он создаст его и выпишет. Возможно, вы захотите использовать NSMutabledictionary, так как после создания вы можете изменить значения и ключи. Кроме того, будьте осторожны с сохранением значений, отличных от строк (или nill). Вы можете вызвать эту функцию из ViewDidLoad ...

- (void)readDictionary { 
// check to see if the file exist 

NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) 
        objectAtIndex:0]; 
NSString *docFilePath = [docDir stringByAppendingPathComponent:@"saveinfo.plist"]; 

NSFileManager *filemgr; 
filemgr = [NSFileManager defaultManager]; 

if ([filemgr fileExistsAtPath:docFilePath]) { 
    _someInfo = [[NSDictionary alloc] initWithContentsOfFile:docFilePath]; 
} else { 
    _someInfo = [NSDictionary dictionaryWithObjectsAndKeys:@"John", @"firstName", 
       @"Smith", @"lastName", nil]; 
    if (![_someInfo writeToFile:docFilePath atomically:YES]) { 
     NSLog(@"Errro writing plist"); 
    } 
} 

//NSLog(@"%@", _someInfo); 
} 
+0

Благодарить за это решение, но я думаю, что это не хорошо для меня, потому что в одном файле я хочу, чтобы сэкономить много вещей, с теми же полями; например, я хочу сохранить информацию о контактах (имя, фамилия, номер, брак или нет ...). Поэтому я сохраняю один контакт с его информацией (имя, фамилия, номер, женатый или нет ...) и затем сохраните добавление другого контакта с другой информацией (имя, фамилия, номер, женатый или нет ...). Я не знаю, был ли я точен –

+0

Тогда вы можете создать массив словарей, сохранение массива очень похоже на сохранение словаря. –