我有一個對象,我從核心數據加載數據。然後我用用戶輸入/選擇修改對象。模型對象和核心數據
我的第一個雖然是來覆蓋的屬性setter方法:
-(void)setType:(NSString *)type {
NSLog(@"setType fired | newType: %@", type);
_type = type;
appDelegate *appDelegate = (appDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:DEFAULTS_DB];
NSError *error;
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
if (fetchedObjects.count == 1) {
Defaults *defaults = [fetchedObjects objectAtIndex:0];
defaults.sceneType = type;
}
if (![context save:&error]) {
NSLog(@"Error in saving first run defaults | error: %@", error);
}
else {
NSLog(@"new type was saved to core data");
}
}
我的另一個想法是,以更新核心數據時applicationWillResignActive:
火災(但該方法只得到了幾秒鐘的應用程序之前運行被凍結)以及用戶何時註銷。
該應用程序我創建一個用戶會啓動,成立了他想要什麼,然後直到他再次使用它,所以我很擔心我的應用程序,同時不活動的被殺害,並把它放下10-60min丟失數據。
是處理更新的好方法更新核心數據在setter方法或者是一個非常糟糕的主意(佔用過多資源,太慢了)?