我试图在 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/