在 Swift 中的字典中搜索

Posted

技术标签:

【中文标题】在 Swift 中的字典中搜索【英文标题】:Search within dictionary in Swift 【发布时间】:2016-07-02 06:20:22 【问题描述】:

我从 JSON 响应中收到 NSDictionary

如何在ArraysNSDictionary 中进行搜索。每个数组都包含一个NSDictionary。我想搜索特定的赌场名称,但我也想获取与之关联的地址字段。我怎样才能在swift ios中获得它。

JSON 响应如下


    "success": [
        
            "casino_id": "2",
            "casino_name": "cas",
            "address": "add",
            "distance": "0.19084827576745822"
        ,
        
            "casino_id": "4",
            "casino_name": "eeee",
            "address": "adressdd",
            "distance": "0.12319974564234398"
        
    ]

下面的搜索代码

var casinoarray = NSArray()  // CONTAINS THE JSON 
var resultsarray = NSArray() // USED FOR FILTERED ARRAY    
let resultPredicate = NSPredicate(format: "self.casino_name == %@", searchText)

    resultsarray = casinoarray.filteredArrayUsingPredicate(resultPredicate)
    tableView.reloadData()   
    print(resultsarray)

请帮帮我。

TIA

【问题讨论】:

首先你必须尝试使用​​ SwiftyJSON 或 ObjectMapper 来映射这个 JSON。试试看,然后告诉我们 @UmairAfzal 我是新手,请告诉我映射这个 json 意味着什么。 @UmairAfzal 您也可以手动映射它。期望的结果是使用对象而不是字典。不需要外部库。 【参考方案1】:

你可以这样使用

        let prdicate:NSPredicate = NSPredicate(format: "self.casino_name contains[c] %@", searchText)

        let filterArray = self.yourArray.filter(
            prdicate.evaluateWithObject($0)
        )
        print(filterArray)

【讨论】:

感谢一百万的建议。我是使用谓词的新手。

以上是关于在 Swift 中的字典中搜索的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 字典中的存储值顺序完全改变

在 Swift 中,如何在由结构对象数组组成的字典中进行搜索?

检查字典中的对象是不是为 Int (Swift)

Swift 表格视图返回我的字典的一些单元格

如何在 swift 中使用嵌套字典发送 POST 请求

Swift - 使用 swiftyJSON 根据字典中的值查找字典数组的索引