NSManagedObject中的更改不会保存到CoreData

时间:2014-12-02 14:28:56

标签: ios objective-c core-data

我有两种方法来保存和加载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]方法 - 它看起来像已保存,但仅在应用程序重新启动之前...在应用程序重新启动后,对象具有旧值...

错误在哪里? 谢谢!

0 个答案:

没有答案