我有一个var json:[[String:Any]=[[:]],其中包含如下json响应:
{
"id": "1",
"name": "Apple",
"category_name": "Fruits"
},
{
"id": "2",
"name": "Black shirt",
"category_name": "Fashion"
},
{
"id": "3",
"name": "iPad",
"category_name": "Gadgets"
}
我写了一个枚举:
enum : Int {
case fruits = 0, fashion, gadgets
}
var data = [Categories: [[String: Any]]]()
然后,我使用此方法对类别进行排序:
func sortData() {
data[.fruits] = self.json.filter({ $0["category_name"] == "Fruits" })
data[.fashion] = self.json.filter({ $0["category_name"] == "Fashion" })
data[.gadgets] = self.json.filter({ $0["category_name"] == "Gadgets" })
}
在那之后,我得到了这样一个错误
二进制运算符“==”
“不能应用于“Any”类型的操作数
”和“<代码>字符串”
请告诉我如何解决这个问题?
Swift 5
更改以下代码
func sortData() {
data[.fruits] = self.json.filter({ $0["category_name"] == "Fruits" })
data[.fashion] = self.json.filter({ $0["category_name"] == "Fashion" })
data[.gadgets] = self.json.filter({ $0["category_name"] == "Gadgets" })
}
到
func sortData() {
data[.fruits] = self.json.filter({ $0["category_name"] as? String == "Fruits" })
data[.fashion] = self.json.filter({ $0["category_name"] as? String == "Fashion" })
data[.gadgets] = self.json.filter({ $0["category_name"] as? String == "Gadgets" })
}
这将修复错误。
问题是,您试图比较不同类型的值,即任何
和字符串。要快速解决问题,您可能需要尝试说服Swift您的<代码>有吗
实际上是一个字符串值。请尝试将$0[“category\u name”]替换为($0[“category\u name”]为?字符串)
,这会将其转换为字符串吗
。然后,Swift将能够将可选字符串与给定的类别字符串进行比较。
您应该安全地将左侧的值强制转换为字符串,如下所示:
data[.fruits] = self.json.filter({ ($0["category_name"] as? String) == "Fruits" })
以下代码过去可以在swift 2.2中编译,现在不再在swift 3.0中编译。我们如何解决这个问题? 错误:二进制运算符“====”不能应用于“Any”类型的操作数还有“UIBarbuttonite!”
我在练习一些代码,遇到了一些问题。 这是密码 所有的代码都很好,打印得很好,但是最后一行带来了一个问题。 我以为是macFood。水果是数组。 因为macFood。水果=[水果(名称:“苹果”,容量:1),水果(名称:“香蕉”,容量:2)]工作。 所以我想我可以使用'='运算符添加另一个元素。 但它在最后一行崩溃了,macFood。水果=[水果(名称:“葡萄”,容量:3)] 错误消息为 “二进制运
我用Swift 2.2编写了以下代码,但当切换到Swift 3.0时,如果条件“二进制运算符”不能应用于“AnyObject”和“String”类型的操作数,则会出现错误 请建议解决方案,如上面if let语句中的代码所示,如果字典值返回nil,则我为特定键指定了空白字符串(“”)
我正在尝试构建一个简单的Swift应用程序来计算增值税(增值税=20%)。 因为某种原因我一直 二进制运算符*不能应用于Int和Double类型的操作数 在线上
二进制运算符' (字符串?)是什么类型?
我试图通过UISearchBar在UITableView上搜索用户。问题是,当我尝试时,错误不断出现。 这是我的代码: 我正在尝试通过Firebase fetch在我的应用程序中搜索用户。我已经将用户带到了UITableView上,问题是我无法搜索特定的用户。请帮忙!我什么都试过了。