您好,在我的应用程序中,我使用的是Core Data,在一个地方我必须更新状态(NSManaged
对象中的一个键)。我在for
循环中进行的更新。每当我尝试这样做时,应用程序都会崩溃。任何人都可以帮助我。
NSManagedObjectContext *threadManagedObjectContext = [self myManagedContext] ;
[[NSNotificationCenter defaultCenter] removeObserver:self name:NSManagedObjectContextObjectsDidChangeNotification object:threadManagedObjectContext] ;
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mergeContextChangesForNotification:) name:NSManagedObjectContextObjectsDidChangeNotification object:threadManagedObjectContext];
NSManagedObject *object = [threadManagedObjectContext objectWithID:[_object objectID]] ;
if (statusArray)
{
for (NSDictionary *statusDic in statusArray)
{
[object setValue:[[statusDic allValues] lastObject] forKey:[[statusDic allKeys] lastObject]] ;
}
}
在StatusArray中我有一个词典。每个字典都包含一个键值对,就像这个status:0
答案 0 :(得分:0)
您需要在NSManagedObjectContext上调用save:方法来提交您所做的更改。
if (statusArray) {
for (int i=0;i<[statusArray count];i++) {
NSDictionary *statusDic=[statusArray objectAtIndex:i];
[object setValue:[[statusDic allValues] lastObject] forKey:[[statusDic allKeys] lastObject]] ;
NSError *error = nil;
if(![threadManagedObjectContext save:&error]) {
NSLog(@"Error saving!!!!!: %@", error.userInfo);
}
}
}