gpt4 book ai didi

objective-c - 核心数据获取请求中需要谓词吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:17 25 4
gpt4 key购买 nike

我想省略 NSFetchRequest 中的谓词,以便删除实体的所有托管对象。

然而,当没有谓词时(根据 SQL 调试器),获取请求不会被执行。根据 Apple 的说法,谓词应该是可选的。

我需要如何更改我的代码才能删除谓词?有任何想法吗?谢谢!

- (void)deleteEntity:(NSString*)entityName inContext:(NSManagedObjectContext *)context
{
NSFetchRequest * request= [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"TableStructure" inManagedObjectContext:context]];
//[entities setIncludesPropertyValues:NO]; //only fetch the managedObjectID
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"category = 'est'"];
[request setPredicate:predicate];

NSError *error = nil;
NSArray *entitiesArray = [context executeFetchRequest:request error:&error];

if (error) {
NSLog(@"%@: Error fetching context: %@", [self class], [error localizedDescription]);
NSLog(@"entitiesArray: %@",entitiesArray);
return;
}

for(NSManagedObject *entity in entitiesArray) {
[context deleteObject:entity];
}

NSError *saveError = nil;
[context save:&saveError];
}

更新2

似乎我在数据库准备好之前调用了我的获取请求。如何确保在核心数据数据库准备就绪之前不调用我的请求?

最佳答案

如果您不想要谓词,您可以简单地不分配谓词。删除以下行:

NSPredicate * predicate = [NSPredicate predicateWithFormat:@"category = 'est'"];
[request setPredicate:predicate];

关于objective-c - 核心数据获取请求中需要谓词吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10294851/

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