2013-12-11 3 views
8

코어 데이터를 기반으로하는 응용 프로그램을 작성하고 있습니다. Item에 가져 오기를하고 있습니다. 가져온 객체가 즉시 액세스 될 것이므로 반환 할 때 가져온 객체가 잘못되는 것을 원하지 않습니다. 따라서 returnsObjectsAsFaultsNO으로 설정했습니다. 그러나, 그것은 나를 위해 작동하지 않습니다.NSFetchRequest setReturnsObjectsAsFaults : 작동하지 않습니다.

다음은 내 NSFetchedResultsController을 설정하는 방법입니다.

NSString *cacheName = @"cache"; 
[NSFetchedResultsController deleteCacheWithName:cacheName]; 

NSManagedObjectContext *context = APPDELEGATE.managedObjectContext; 

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Item" inManagedObjectContext:context]; 
[request setEntity:entity]; 
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"dateCreated" ascending:YES]; 
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]]; 
[request setFetchBatchSize:20]; 
[request setReturnsObjectsAsFaults:NO]; 

NSFetchedResultsController *frc = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:cacheName]; 
[request release]; 

NSError *error = nil; 
BOOL result = [frc performFetch:&error]; 
if(!result){ 
    NSLog(@"Unresolved core data error"); 
} 

아이디어가 있으십니까?

업데이트 : 실제로 가져온 모든 개체는 오류입니다.

<_PFBatchFaultingArray 0x176f2bc0>(
<Item: 0x17613480> (entity: Item; id: 0x18ba3910 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p610> ; data: <fault>), 
<Item: 0x18b832e0> (entity: Item; id: 0x176dda50 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p611> ; data: <fault>), 
<Item: 0x18b97040> (entity: Item; id: 0x18b5f830 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p612> ; data: <fault>), 
<Item: 0x18bd1d40> (entity: Item; id: 0x18bc2f30 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p613> ; data: <fault>), 
<Item: 0x18b996c0> (entity: Item; id: 0x18b8f660 <x-coredata://5C2547EC-0420-4ED5-867D-087DEF4998EA/Item/p619> ; data: <fault>) 
) 
+3

당신이 나를 위해 작동하지 않습니다 * 무엇을 의미합니까 우리를 설명 * –

+0

어떤 로그/테스트 (CoreData 디버그 로그)를 가지고 있습니까 과도한 오류 표시? –

+0

@flexaddicted 가져온 객체는 여전히 오류입니다. – Mindy

답변

0

나는 이것도 관찰했다. 필자의 경우, 나는 어린 시절의 결과를 가져왔다. 기본 컨텍스트에서 가져 오기를 변경하면 returnsObjectsAsFaults이 제대로 작동합니다.

다시 말해서 하위 컨텍스트에서 가져 오기를 수행하면 returnsObjectsAsFaults이 예상대로 작동하지 않습니다.

사람이 같은 이유로, 여기에 비슷한 문제가 발생했습니다 : https://stackoverflow.com/a/14801402/1060314