1

right detail配列内のアイテムの数を取得して、それを aに配置しようとしていcellます。興味深いことに、私は適切な値を取得していますが、配列を取得countしようとすると、 が返されます。NSLog<fault>

NSPredicate *searchPredicate = [NSPredicate predicateWithFormat:@"muscleGroup == %@ && specificExercise == %@ && date >= %@ && date < %@", theMuscleGroup, theExercise, fromDate, toDate];

NSFetchRequest *fetchRequestTemp = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
                               entityForName:@"WeightLiftingInfo" inManagedObjectContext:_managedObjectContext];

[fetchRequestTemp setPredicate:searchPredicate];
[fetchRequestTemp setEntity:entity];
NSError *error;
NSArray *tempArray = [[NSArray alloc] initWithArray:[_managedObjectContext executeFetchRequest:fetchRequestTemp error:&error]];

NSLog(@"%@", tempArray);
NSLog(@"%d", [tempArray count]);

私の質問: 基本的に、私は何を間違っていますか? アレイを不適切に初期化しているか、不適切にログに記録しようとしていますか?

私は何時間も調査し、さまざまなコーディングを試してきましたが、それを理解できません。どんな助けでも大歓迎です。さらに情報が必要な場合、または SO に従ってガイドラインに反することを行っている場合は、このスレッドを閉じるか「-1」する前にお知らせください。慈悲を持ってください、私は新しくて傾いています:)

4

1 に答える 1

2

フェッチ リクエストを実行すると、管理対象オブジェクトの障害が返されます。つまり、実際のデータ オブジェクトがまだデータ ストアから読み込まれていない場合でも、結果を表すプロキシのようなオブジェクトです。フォールトは、配列などに含まれるオブジェクトの数を認識し、オブジェクトにアクセスすると、フォールトは実際のオブジェクトを透過的にロードします。

ですから、状況は正常です。心配する必要はありません。ログに記録する代わりに結果を使用してみてください。問題なく動作することがわかると思います。

于 2012-06-20T17:58:09.267 に答える