2
我正在開發基於ABAddressBook的應用程序。 我想使用謂詞來評估或比較abaddressbook中的對象。但似乎ABAddreesBook是一個核心基金框架,不支持KVC。這是否意味着我不能在我的應用程序中使用謂詞?如何將用戶謂詞(需要KVC)轉換爲像ABRecord這樣的CF對象?
或者還有什麼其他的方式來做謂詞嗎?
我正在開發基於ABAddressBook的應用程序。 我想使用謂詞來評估或比較abaddressbook中的對象。但似乎ABAddreesBook是一個核心基金框架,不支持KVC。這是否意味着我不能在我的應用程序中使用謂詞?如何將用戶謂詞(需要KVC)轉換爲像ABRecord這樣的CF對象?
或者還有什麼其他的方式來做謂詞嗎?
簡短的回答是:你不能。
長的答案是:你可以,但它會是一個lot的工作。我可能會做這樣的事情:
NSExpressions
聚合所有的-keyPath
字符串,並將其存儲在數組中。這些將是您要查詢的對象的屬性。ABRecord
對象數組並創建一個字典來表示每個對象。此字典將具有recordID以及要鍵入屬性名稱的每個「keypath」的ABRecordCopyValue()
值。這聽起來像一個有趣的問題。我會多想一些,也許會回來修改我的答案。