2

いくつかの属性を持つエンティティがあります。私は自分のタブに既に値を設定しています(SQLiteテーブル)1つの属性(Attribute1を呼び出します)で、アプリの使用中に変更されるbool値があります。

Attribute1 値が YES のエンティティの数を返すにはどうすればよいですか?

「Core data Tutorial」と「Predicate Programming Guide」は読みましたが、進め方がわかりません。

    NSPredicate *predicate= [NSPredicate predicateWithFormat:@"Attribute1 == %@",[NSNumber numberWithBool:YES]];

私はこれで試してみましたが、その後?それは動作していないようです..

4

1 に答える 1

3

最善の策は、countForFetchRequest メソッドを使用することです。述語とフェッチ リクエストを設定しますが、実際のフェッチを行う代わりに、次のように countForFetchRequest を実行します。

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"Attribute1 == %@",
        [NSNumber numberWithBool:YES]];

[request setPredicate:predicate];

NSUInteger count = [myManagedObjectContext countForFetchRequest:request error:nil];

詳細については、Apple API ドキュメントを参照してください。

countForFetchRequest:error: 特定のフェッチ要求が executeFetchRequest:error: に渡された場合に返されるオブジェクトの数を返します。

  • (NSUInteger)countForFetchRequest:(NSFetchRequest )request error:(NSError * )error パラメータ request フェッチの検索条件を指定するフェッチ リクエスト。error フェッチの実行に問題がある場合、戻り時に問題を説明する NSError のインスタンスが含まれます。戻り値 executeFetchRequest:error: に渡された場合、特定のフェッチ要求が返すオブジェクトの数、またはエラーが発生した場合は NSNotFound。

提供状況 iOS 3.0 以降で利用可能です。NSManagedObjectContext.h で宣言

于 2011-09-26T15:19:33.920 に答える