我已經開始使用CoreData編寫iPhone應用程序,並嘗試儘可能地維護我的代碼庫。因此,我想避免硬編碼字符串,如:CoreData NSPredicate屬性名稱
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", aName];
相反,我希望能夠寫類似:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", Person.name, aName];
這樣,我會得到編譯器檢查是否name
是實體Person
的財產,並避免拼寫錯誤。
有了這個代碼,雖然我在編譯時得到以下錯誤: 房產name
的類型NSManagedObject
類型的Person
Person
感和Xcode的從我的MyApp.xcdatamodeld
自動生成的對象沒有找到。
name
是Person
我GOOGLE了起來,已經SOed了相當多的答案,這個具體問題的實體的一個簡單的字符串屬性。我也嘗試過使用property_getName
和NSPropertyDescription
,但目前爲止還不成功。
在此先感謝您的幫助,
Joss。
它不會這樣工作,您仍然必須爲'@ K'參數提供'@「名稱''。 – Joe