2011-12-05 23 views
0

檢索在給定的CoreData實體領域的所有值我有一個CoreData實體:通過傳遞另一個字段值作爲標準

A { 
prop1 
prop2 
} 

我需要構建一個簡單的獲取,檢索NSManagedObject的所有PROP1有一個給定值的prop2。

這很容易用sql語句解釋。

SELECT A.prop1 WHERE A.prop2=<value> 

就是這樣,只是所有的值沒有明確的條款。到目前爲止,我發現,要實現這一目標的唯一途徑是通過檢索所有實體與NSPredicate:

NSPredicate *allProps = [NSPredicate predicateWithFormat:@"prop1 == %@",prop]; 

的事情是,我只想PROP2的一個NSArray而不是全套實體迭代的。我希望NSExpression可以讓我有能力做到這一點,但我找不到方法。 你有什麼建議嗎?

回答

0

我不太明白你問題的最後部分。我想您可以通過下面的代碼

[request setEntity:[NSEntityDescription entityForName:@"A" inManagedObjectContext:context]]; 
[request setPropertiesToFetch:[NSArray arrayWithObject:@"prop1"]]; 
[request setPredicate:[NSPredicate predicateWithFormat:@"prop2==%@",prop]]; 
[request setResultType:NSDictionaryResultType]; 

當然要來達到的是什麼,你必須設置你的排序描述符和所有的,但這應該做的伎倆。

+0

我幾乎到了那裏,缺少的部分是通過[請求setResultType:NSDictionaryResultType]來完成的,以避免加載所有的實體,但只是鍵/值 – Leonardo

+0

啊是的,你會得到一個以prop1爲關鍵字的字典結果。 – MadhavanRP

相關問題