0

我正在尝试更新我的核心数据堆栈中的现有对象,正在检索对象并且我可以更改值,但是在保存上下文时,没有保存任何内容。也是hasChangesNO并且updatedObjects是空的。

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName: @"MyModel"];
NSPredicate *predicate  = [NSPredicate predicateWithFormat:@"(x == %@) AND (y == %@)", x, y];

request.returnsObjectsAsFaults = NO;
request.predicate       = predicate;

NSArray *results        = [self.managedObjectContext executeFetchRequest: request error: nil];
MyModel *model          = results[0];

model.newvalue          = "somenewvalue";

NSLog(@"%@", (self.managedObjectContext.hasChanges)?@"YES":@"NO"); // -> Shows NO
NSLog(@"%@", self.managedObjectContext.updatedObjects); // -> Shows empty array

[self saveContext]; // No error, seems to be working successfully but the updated objects is empty as well has "hasChanges", so something else is being missed here

这有点令人费解和烦人。我真的很感激关于这个问题的任何见解。

正如建议的那样,这也被尝试过,但没有帮助

NSManagedObject *model  = results[0];
[model setValue: @"somenewvalue" forKey: @"newvalue"];
4

1 回答 1

0

疯狂的答案,但我绝对可以想象其他人会犯这个错误。在我的 NSManagedObject 内部,而不是@dynamic对于我拥有的每个属性@synthesize。这就是问题所在。

于 2013-10-13T17:03:12.097 回答