任何人都可以知道为什么这不返回任何ManagedObjects?我试图添加到ATNSManagedObject + EasyFetching类如下,但取回结果什么也没有返回。如果我在EasyFetch类的外部获取这些对象,我有100多个对象,所以我知道它不是CoreData是空的。NSFetchRequest什么都不返回
+ (void)deleteAllObjectsInContext;
{
NSManagedObjectContext *context = [NSManagedObjectContext defaultContext];
NSEntityDescription *entity = [self entityDescriptionInContext:context];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entity];
//[request setIncludesPropertyValues:NO];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:request error:&error];
if (error != nil)
{
//handle errors
NSLog(@"delete error");
}
for (NSManagedObject *thing in results) { <--- |results shows 0 objects|
[context deleteObject:thing];
}
NSError *saveError = nil;
[context save:&saveError];
}
'NSEntityDescription * entity = [self entityDescriptionInContext:context]''? –
你确定结果数组是非零(而不是空数组)吗? Apple文档声明您应该检查非零结果(而不是检查非零错误)以检测错误情况。我认识到这可能不会导致这里的解决方案,但可以帮助您避免将来的混淆(显然即使没有错误条件,错误也可能不为零。返回nil而不是NSArray是准确检测错误) –
事实上,如果事实证明我的答案是正确的,那么这种类型的错误检查(检查非零结果而不是非零错误)可以帮助您检测到它:-) –