0

プロジェクトでCoreDataを使用しています。

コードでアクセスした後、フォールトオブジェクトのリレーションがフォールト解除されない場合、問題が発生しました。

私の質問:障害関係は、それにアクセスした後も障害を維持できる可能性があります。

upd:

NSManagedObjectContext *context = self.context;
    
if (!context)
return nil;
    
    NSFetchRequest *request = NSFetchRequest.new;
request.entity = [NSEntityDescription entityForName:name inManagedObjectContext:context]; 
    request.predicate = predicate;
    
    if (sortDescriptors)
        [request setSortDescriptors:sortDescriptors];
        
    return [context executeFetchRequest:request error:nil];

context-メインスレッドのデフォルトコンテキストです。メインスレッドでオブジェクトの関係にアクセスします。

4

1 に答える 1

1

問題が何であるか/何を達成したいのかわからない。フェッチリクエストがオブジェクトではなくフォールトを返す場合は、

request.returnsObjectsAsFaults = NO;

フェッチされたオブジェクトのいくつかのプロパティ/関係もフェッチされるようにしたい場合/障害ではない場合は、

[request setRelationshipKeyPathsForPrefetching:@[@"someProperty1",@"someOtherPropertyInEntity"]];

この最後の1つは、パフォーマンスを向上させるときに非常に役立つ場合があります。

于 2013-02-01T10:44:24.867 に答える