2013-08-22 45 views
0

當我試圖獲取具有某個屬性的NSManagedObject時,我有一個非常奇怪的錯誤。下面是我所做的:iOS核心數據 - NSFetchRequest和NSPredicate不允許雙格式?

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%@ == %@", LEVEL_NAME_KEY, _levelName]; 

在這個例子中,LEVEL_NAME_KEY = @"levelName"_levelName是一個函數的參數。 我想這樣做,所以如果我更改我的密鑰名稱,我可以通過更改LEVEL_NAME_KEY來改變它的標題。但它不起作用(當我執行抓取時,它什麼也不返回)。

然而,當我寫這樣的說法:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"levelName == %@", _levelName]; 

一切正常,我也得到了正確的NSManagedObject。

任何人對此有意見?這是一個已知的錯誤,有沒有解決方案?

在此先感謝!

回答

2

的格式應指定爲:

@"%K == %@" 

因爲你需要關鍵的名稱和參數值(在創建謂詞時得到的引用)之間進行區分。

Associated docs

+0

哦,天哪,我怎麼錯過了?哈哈真的非常感謝你的鏈接;) – RaphBlanchet