我正在使用此行获取数据
let contentViewVerticalConstraint=NSLayoutConstraint.constraints(withVisualFormat: "V:|[contentView(300)]", options: [], metrics: nil, views: viewsDictionary)
我想从字典中过滤数据,所以我正在使用此代码
let productDict = arrProductCart[sender.tag] as! [String: AnyObject]
它给了我错误 Type'(String,AnyObject)'没有下标成员
我需要将[String:AnyObject]转换为[String:String]吗? 怎么做。
答案 0 :(得分:2)
很可能你想要过滤arrProductCard
数组而不是productDict
,这是没有意义的。试试这个:
let filteredProducts = arrProductCard.filter{
guard let groupId = $0["groupid"] as? String else { return false }
return groupId != "1"
}
你应该尽可能避免强行打开。请注意,如果字典中没有groupid
值或者字符串不是字符串,则过滤器闭包内的代码将崩溃。
修改强>
如果您出于某种原因使用NSMutableArray
,则可以使用谓词对其进行过滤:
let mutableArray = NSMutableArray(array: [["groupid": "1"], ["groupid": "2"]])
let groupIdPredicate = NSPredicate(format: "groupid != %@", "1")
mutableArray.filter(using: groupIdPredicate)
但是,我强烈建议使用Swift原生集合。