我正在开发一个基于 ABAddressBook 的应用程序。我想使用谓词来评估或比较 abaddressbook 中的对象。但似乎 ABAddreesBook 是一个 Core Fundation 框架,不支持 KVC。这是否意味着我不能在我的应用程序中使用谓词?
还是有其他方法可以做谓词之类的事情?
我正在开发一个基于 ABAddressBook 的应用程序。我想使用谓词来评估或比较 abaddressbook 中的对象。但似乎 ABAddreesBook 是一个 Core Fundation 框架,不支持 KVC。这是否意味着我不能在我的应用程序中使用谓词?
还是有其他方法可以做谓词之类的事情?
简短的回答是:你不能。
长答案是:你可以,但这需要很多工作。我可能会做这样的事情:
NSExpressions
谓词以聚合所有-keyPath
字符串并将它们存储在数组中。这些将是ABRecord
您要查询的对象的属性。ABRecord
对象数组并创建一个字典来表示每个对象。该字典将具有 recordID 以及ABRecordCopyValue()
您想要的每个“keypaths”的值,并键入属性名称。ABRecord
对象数组并返回。这听起来像是一个有趣的问题。我会再考虑一下,也许会回来编辑我的答案。