swift - 如何在 swiftyJSON 对象上使用包含

标签 swift contains swifty-json

我试图在 swift 中使用 contains 来查找数组上的值,但是当我使用变量作为谓词时,我得到一个“String is not convertible to 'S.Generator.Element'”。

谁能解释一下这意味着什么以及为什么会这样?

这是使用 swiftyJSON 加载和解析的原始 JSON:

{ “假期”:[ “2015 年 1 月 1 日”, “12/01/2015”, “2015 年 3 月 23 日”, “2014 年 2 月 4 日”, “2015 年 3 月 4 日”, “2015 年 1 月 5 日”, “2015 年 5 月 18 日”, “2015 年 8 月 6 日”, “2015 年 6 月 15 日”, “2015 年 6 月 29 日”, “2015 年 7 月 20 日”, “2015 年 8 月 17 日”, “2015 年 12 月 10 日”, “2015 年 2 月 11 日”, “2015 年 11 月 16 日”, “2015 年 8 月 12 日”, “25/12/2015”, “2016 年 2 月 1 日” ] }

这行得通

var haystack:Array<JSON> = jsonData["holidays"].arrayValue
if(contains(haystack, "01/01/2015")) {
    return true
}

这不起作用:

var haystack:Array<JSON> = jsonData["holidays"].arrayValue
var needle:String = "01/01/2015"
if(contains(haystack, needle)) {
    return true
}

最佳答案

不调用 arrayValue,尝试调用 object:

if let haystack = jsonData["holidays"].object as? [String] {
    let needle = "01/01/2015"
    if contains(haystack, needle) {
        return true
    }
}

关于swift - 如何在 swiftyJSON 对象上使用包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27696730/

相关文章:

ios - swift中如何基于协议(protocol)实现路由

php - Laravel Collection 方法 has() 和 contains() 的区别

json - 从 AWS Lambda 函数解析 JSON 答案

ios - 从 3.0 更新到 SwiftyJSON 4.0 导致旧代码不明确

jQuery contains() - 仅选择底部的 div

json - 如何为以下 JSON 数据创建模型类并解析它?

ios - 使用具有 50 条记录限制的 FILO 记录插入来执行 RealmSwift

swift - 如何以编程方式禁用约束?

ios - 歧义使用下标 xcode 7.1

c# - 如何检查一个字符串是否包含某些字符串