我在做这样的for循环时出错了
for i in 0..<firstJSON["boxGroups"].array?.count{
existingGroups.append(firstJSON["boxGroups"][0]["name"].stringValue)
}
xcode抱怨“二进制运算符不能应用于int和‘int?’类型的操作数”
最佳答案
您面临的问题是因为Optional Chaining
,array
属性返回可选类型,因此count属性也返回可选对象。所以用if let
或guard let
来包装可选的。
同样在for loop
中,而不是使用i
访问数组中的每个对象,您只使用0
访问第一个对象。
if let boxGroupsArray = firstJSON["boxGroups"].array {
for i in 0..<boxGroupsArray.count{
existingGroups.append(boxGroupsArray[i]["name"].stringValue)
}
}
使用
flatMap
而不是for loop
有更好的选择if let boxGroupsArray = firstJSON["boxGroups"].array {
existingGroups = boxGroupsArray.flatMap { $0["name"].string }
}