我有两种方法来保存和加载NSManagedObject(更新为原始版本):
-(void) saveToCoreData: (TeamManagedObject *)teamSet{
RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelDebug);
if(!teamSet) {
self.teamSet = [NSEntityDescription insertNewObjectForEntityForName:@"TeamManagedObject" inManagedObjectContext:self.managedObjectContext];
} else {
self.teamSet = teamSet;
}
[self.teamSettings enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[self.teamSet setValue:obj forKey:key];
}];
NSError *saveError = nil;
[self.managedObjectContext save:&saveError];
}
-(id)load:(TeamManagedObject *)managedObject {
unsigned int count = 0;
objc_property_t *properties = class_copyPropertyList([TeamManagedObject class], &count);
for (int i = 0; i < count; i++) {
NSString *key = [NSString stringWithUTF8String:property_getName(properties[i])];
NSString *value = [managedObject valueForKey:key];
if (value) {
[self setObject:value forKey:key];
}
}
self.teamSet = managedObject;
free(properties);
return self;
}
1)调用方法[self save:nil] - 对象正确创建并保存到CoreData。 (重新启动应用后值正确)
2)重新启动app并调用load方法 - 它已正确加载
3)使用加载的对象调用save [self save:object]方法 - 它看起来像已保存,但仅在应用程序重新启动之前...在应用程序重新启动后,对象具有旧值...
错误在哪里? 谢谢!