2011-07-19 41 views
2

我有一個具有某個屬性的實體。我有我的tabes已經填充(SQLite表) 在一個屬性(我會打電話給Attribute1)我有一個布爾值,在使用我的應用程序時發生變化。使用特定值計算核心數據中的實體

我怎樣才能返回我的實體與屬性1值YES?

我已經讀完了「核心數據教程」和「謂語編程指南」,但我不明白如何進行..

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

我試過這個,然後?它似乎不工作..

回答

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]; 

你可以在蘋果的API文檔的詳細信息:

countForFetchRequest:error: Returns the number of objects a given fetch request would have returned if it had been passed to executeFetchRequest:error:.

  • (NSUInteger )countForFetchRequest:(NSFetchRequest )請求錯誤:(NSError *)錯誤 參數 請求 獲取請求,指定提取的搜索條件。 錯誤 如果執行提取時出現問題,返回時包含描述問題的NSError實例。 返回值 給定提取請求將返回的對象的數量,如果它已傳遞給executeFetchRequest:error :,或發生錯誤時返回NSNotFound。

可用性 適用於iOS 3.0及更高版本。 宣稱在 NSManagedObjectContext.h