왜 ManagedObjects가 반환되지 않는지 알 수 있습니까? 다음 클래스에 ATNSManagedObject + EasyFetching 클래스를 추가하려고 시도하지만 가져 오기 결과가 아무 것도 반환하지 않습니다. EasyFetch 클래스 외부에서 이들을 가져 오는 경우 CoreData가 비어 있지 않다는 것을 알기 위해 100 개 이상의 객체가 있습니다.NSFetchRequest returns nothing
+ (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 오류를 검사하는 대신 무 Nil 결과를 확인해야한다고 설명합니다. 이 해결책을 여기에 발생할 수 있지만 인식 할 수 있지만 미래에 혼란을 피할 수 있습니다 (명백하게 오류 조건이없는 경우에도 nil 않을 수 있습니다 .NSArray 대신 nil 반환 정확한 방법을 감지하는 정확한 방법입니다. 오류) –
실제로 내 대답이 정확하다는 사실이 밝혀지면이 유형의 오류 검사 (Null이 아닌 오류가 아닌 결과 확인)가 도움이 될 것입니다 :-) –