gpt4 book ai didi

objective-c - 核心数据删除不成功*容易修复吗?*

转载 作者:行者123 更新时间:2023-11-29 04:35:32 26 4
gpt4 key购买 nike

我有一个简单的 XCDataModel,其中包含一个具有一个属性的实体。本质上,我正在保存一系列日期。

现在,我知道我正确添加了 NSDates,因为我在添加它们后运行了一个获取请求并运行结果,如下所示:

for (NSManagedObject *info in fetchedObjects) {
NSLog(@"Name: %@", [info valueForKey:@"attribute"]);
}

并且每个额外的 NSDate 都会被考虑在内。日志示例:

2012-06-19 12:40:38.531 Arts Days[47194:16103] Name: 2013-03-27 04:00:00 +0000
2012-06-19 12:40:38.531 Arts Days[47194:16103] Name: 2013-03-01 05:00:00 +0000
2012-06-19 12:40:38.532 Arts Days[47194:16103] Name: 2013-01-01 05:00:00 +0000

现在,当我尝试从 Core Data 中删除对象时,事实证明它不成功(通过运行相同的提取并再次运行结果)。

这里是获取:

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];

[fetchRequest setFetchBatchSize:366];

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];

NSError *error = nil;

[fetchRequest setSortDescriptors:sortDescriptors];

NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

for (NSManagedObject *object in fetchedObjects) {
if ([[object valueForKey:@"date"] isEqualToDate:date]) {
[managedObjectContext deleteObject:object];
}
}
if (![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
}

此外,带有未解决错误的 NSLog 包含 nil nil...

你知道我做错了什么吗?

最佳答案

看来您使用了两个不同的 NSManageObjectContext 实例。 self.managementObjectContext (一个 ivar)来设置您的提取请求并执行提取,但本地实例用于执行 deleteObject:save: 运营。本地实例 managedObjectContext 可能为零,并且不引用与 ivar 相同的对象。

关于objective-c - 核心数据删除不成功*容易修复吗?*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11105145/

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