2017-03-10 180 views
0

enter image description here我有一个结构商人,因为我有一个成员职位是词典类型,我有名称字段。所以,我想过滤在textfield中输入的一些文本(shouldChangeCharactersIn范围文本字段委托)开始的名称。在这种情况下我如何使用谓词。 例如:我有六个名称“Pro shop”,“table”,“Pro merchnat”,“Football”,“Shop2”,“mobile”。然后我输入“pr”,那么它应该给我结果“专业商店”,“Pro merchnat”。快速搜索解析数据3

struct Merchant { 
var key: String 
var ref: FIRDatabaseReference 
    var merchant_id: String 
var uniquecode: String 
var post: NSDictionary 

init(snapshot: FIRDataSnapshot) { 
    key = snapshot.key 
    ref = snapshot.ref 
    let snapshotValue = snapshot.value as! [String: AnyObject] 
    merchant_id = snapshotValue["id"] as? String ?? "" 
    uniquecode = snapshotValue["uniqueCode"] as? String ?? "" 
    post = snapshotValue["post"] as! NSDictionary 
} 

这里是我的代码是什么我试图做..

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { 

    for item in merchantArr { 
     var filteredMerchant = merchantArr.filter{((($0[item] as![String:Any])["post"] as! [String:Any])["name"] as! String).contains(string)} 
    } 
    return true 
} 
+0

你想实现搜索?或排序? –

+0

我想代表名称实现搜索 –

+0

我不能在您的代码中的任何名称字段 –

回答

0

试试这个

var filteredMerchant = merchantArray.filter{((($0["merchant1414124"] as![String:Any])["post"] as! [String:Any])["name"] as! String).contains("pr")} 
+0

我收到编译错误“命令失败,由于信号:分段错误:11”,当我添加此代码的行。 –

+0

你在哪里添加这个?并且你能扩展你的代码吗?所以我可以告诉你在哪里把这个代码或替代 –

+0

岩石我很抱歉,我正忙于其他section.Here是代码我在做什么 func textField(_ textField:UITextField,shouldChangeCharactersIn范围:NSRange,replacementString string:String) - > Bool商家商品中的商品var filteredMerchant = merchantArr.filter {((($ 0 [item] as![String:Any])[“post”] as![String:Any])[“name “] as!String).contains(string)} } return true } –