您必须将更改保存在 coreData...它不仅具有数据预加载...您可以持久化数据。
问题...如何?
我想你的 AppDelegate 标头中有这个属性:
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;
在您的 AppDelegate .m 中还有类似的东西:
- (NSManagedObjectModel *)managedObjectModel { .... }
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { .... }
- (NSManagedObjectContext *)managedObjectContext { .... }
- (void)saveContext {
NSManagedObjectContext *managedObjectContext = self.managedObjectContext;
if (managedObjectContext != nil) {
NSError *error = nil;
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
CoreData 类,地点:MTManagedObject
因此,在您的 tableViewController 中,当按钮在 isFavourite ON 和 isFavourite OFF 之间切换时,您必须执行以下操作:
AppDelegate *appdelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = appdelegate.managedObjectContext;
Places *currentPlace = .... get 'place' object to modified from coredata using context object ....
currentPlace.isFavourite = @(isPlaceFavourite); // state get from button
[appdelegate saveContext];
注意将你的 .csv 数据文件放入 coreData 并使用 coreData 而不是 .csv 文件来加载数据。