Ios 如何从nsarray的nsarray中搜索特定联系人
我已经按字母顺序存储了联系人,所以我在屏幕上显示了联系人列表的数组。现在我想通过姓名搜索联系人,但谓词在这里不能正常工作。我已经完成了以下代码Ios 如何从nsarray的nsarray中搜索特定联系人,ios,swift,nsarray,nspredicate,Ios,Swift,Nsarray,Nspredicate,我已经按字母顺序存储了联系人,所以我在屏幕上显示了联系人列表的数组。现在我想通过姓名搜索联系人,但谓词在这里不能正常工作。我已经完成了以下代码 filterArray.filterUsingPredicate(NSPredicate(format: "ANY SELF.name CONTAINS[cd] '\(tfSearchBar.text!)'", argumentArray: nil)) 首先在过滤器数组中,我拥有所有联系人,但当我搜索“a”时,它会给出联系人名称中包含“a”的所有
filterArray.filterUsingPredicate(NSPredicate(format: "ANY SELF.name CONTAINS[cd] '\(tfSearchBar.text!)'", argumentArray: nil))
首先在过滤器数组中,我拥有所有联系人,但当我搜索“a”时,它会给出联系人名称中包含“a”的所有节数组。但我在这里卡住了。该部分的所有联系人不必在联系人名称中包含“a”
比如说
(
A:(
{
name = "abc"
number = "123456"
}
{
name = "azx"
number = "123456"
}
)
)
例如,在搜索“a”之后,上面的示例。当我搜索“ab”时,同一个数组通过谓词返回。不仅仅是第一个对象。任何只找到没有嵌套谓词的第一个对象的方法。我不确定谓词中的“Any”这个词要实现什么,但它似乎是多余的。当将此代码放入操场时,其工作原理与您描述的相同:
import UIKit
@objc class DataElement : NSObject {
let name : String
let number : String
init(name : String, number : String) {
self.name = name
self.number = number
}
}
let dataArray : NSArray = [
DataElement(name: "abc", number: "123456"),
DataElement(name: "azx", number: "689101")
]
let searchTerm = "a"
let predicate = NSPredicate(format: "SELF.name CONTAINS[cd] '\(searchTerm)'", argumentArray: nil)
dataArray.filteredArrayUsingPredicate(predicate)
这是字典的数组,不是数组的数组。我想要一个来自数组数组的联系人