2013-12-11 60 views
8

我正在研究基於核心數據的應用程序。我在Item上做了一個修改。我不想讓返回的對象在返回時出錯,因爲我確信它們將立即被訪問。因此,我將returnsObjectsAsFaults設置爲NO。但是,它不適合我。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