我有一组从 RESTful API 中提取的字典。我目前正在尝试根据需要过滤掉“域”等于“youtube.com”的数据。
我怎样才能过滤掉它?我调查过
results.filter({
$0["domain"] != "youtube.com"
但不确定如何更深入地让它发挥作用。
最佳答案
或者,您可以使用 Swift 数组,将 theJSON
转换为 [[String: AnyObject]]
而不是 NSMutableArray
。然后,您不必强制转换 results
。然后你可以使用 filter
。
在 Swift 1.2 中,这可能是:
let task = session.dataTaskWithURL(url) { data, response, error in
if error != nil || data == nil {
print(error)
return
}
var parseError: NSError?
if let resultObject = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(rawValue: 0), error: &parseError) as? [[String: AnyObject]] {
let results = resultObject.filter() { ($0["data"]?["domain"] as? String) != "youtube.com" }
dispatch_async(dispatch_get_main_queue()) {
// use results here
}
} else {
print(parseError)
return
}
}
task.resume()
或者,在 Swift 2 中:
let task = session.dataTaskWithURL(url) { data, response, error in
guard data != nil && error == nil else {
print(error)
return
}
do {
let resultObject = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [[String: AnyObject]]
let results = resultObject?.filter() { ($0["data"]?["domain"] as? String) != "youtube.com" }
dispatch_async(dispatch_get_main_queue()) {
// use results here
}
} catch let parseError {
print(parseError)
}
}
task.resume()}
关于ios - 在 Swift 中过滤字典的 NSArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33962562/