2012-03-03 2 views
0

Я следую this Учебное пособие по основным данным и одна вещь меня сбивает с толку. Скажем, я:Общие сведения о сохранении основных данных

NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *failedBankInfo = [NSEntityDescription 
    insertNewObjectForEntityForName:@"FailedBankInfo" 
    inManagedObjectContext:context]; 
[failedBankInfo setValue:@"Test Bank" forKey:@"name"]; 
[failedBankInfo setValue:@"Testville" forKey:@"city"]; 
[failedBankInfo setValue:@"Testland" forKey:@"state"]; 
NSManagedObject *failedBankDetails = [NSEntityDescription 
    insertNewObjectForEntityForName:@"FailedBankDetails" 
    inManagedObjectContext:context]; 

NSError *error; 
if (![context save:&error]) { 
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
} 

Я читал, что CoreData не на самом деле предназначены для хранения данных, но и для управления ею, а также поддержка магазин CoreData является SQLite. Итак, что происходит с этими данными, которые я добавил выше, когда заканчивается сеанс приложения? Сохраняются ли данные автоматически в некоторый SQLite-файл в любое время, когда я запускаю код, как указано выше? Или Core Data пуст каждый раз, когда я запускаю приложение, если только не выполняю некоторые конкретные действия, которые его заполняют?

ответ

1

Метод save: в NSManagedObjectContext фиксирует несохраненные изменения в постоянном хранилище. (Кстати, постоянный тип хранилища может быть sqlite, но также являются и другими постоянными типами хранилищ.) В примере кода сделанные вами изменения сохраняются в постоянном хранилище.

Основные данные - это структура сохранения объектов, поэтому в этом смысле она сохраняет данные. Он сохраняет граф объектов, инкапсулированный в управляемую объектную модель.

+0

Я вижу слово «упорствует» с основными данными, но не понимая, что именно это означает. – Snowman

+2

Персистент должен сохранять таким образом, чтобы его можно было восстановить снова. – FluffulousChimp