gpt4 book ai didi

ios - 更新 AppDelegate 类中 coredata 中的特定记录

转载 作者:行者123 更新时间:2023-11-29 12:08:04 25 4
gpt4 key购买 nike

我想更新 AppDelegate 类中 coredata 中的特定记录。但没有取得成功。在其他自定义类中,它工作得很好,但我认为这是一些 NSManagedObjectContext 问题,但不知道,急于解决。

这是我的代码。

NSManagedObjectContext *managedObjectContext = [self managedObjectContext];

NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Reminder" inManagedObjectContext:managedObjectContext]];


NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(uniqueId=%@)",uid];
request.predicate = predicate;
request.resultType=NSDictionaryResultType;
[request setReturnsObjectsAsFaults:NO];
NSError *err=nil;
NSArray *result = [managedObjectContext executeFetchRequest:request error:&err];

NSManagedObject* object = [result objectAtIndex:0];
[object setValue:@"Previous" forKey:@"reminder_for"];

NSError *error;

if (![managedObjectContext save:&error]) {
NSLog(@"error%@",error.description);
}
else
{
NSLog(@"Update record");
}

请帮助。

最佳答案

当使用 NSDictionaryResultType 时,您将收到一个 NSDictionary 数组,而不是 NSManagedObject 数组。因为 resultType 默认为 NSManagedObjectResultType,所以不要设置它。

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Reminder"];
request.predicate = [NSPredicate predicateWithFormat:@"uniqueId == %@", uid];
request.returnsObjectsAsFaults = NO;

NSError *error;
NSArray *result = [managedObjectContext executeFetchRequest:request error:&error];

NSManagedObject *object = result.firstObject;
[object setValue:@"Previous" forKey:@"reminder_for"];

if (![managedObjectContext save:&error]) {
NSLog(@"error%@",error.description);
} else {
NSLog(@"Update record");
}

关于ios - 更新 AppDelegate 类中 coredata 中的特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com