无法将“__NSSingleObjectArrayI”类型的值转换为“NSDictionary”
Posted
技术标签:
【中文标题】无法将“__NSSingleObjectArrayI”类型的值转换为“NSDictionary”【英文标题】:Could not cast value of type '__NSSingleObjectArrayI' to 'NSDictionary' 【发布时间】:2016-12-13 09:31:28 【问题描述】:我正在尝试使用 iTunes 查找 api 检查我的应用程序的版本。我在解析响应时遇到问题。请找代码
static func needsUpdate() -> Bool
do
let infoDictionary = Bundle.main.infoDictionary
let appID = infoDictionary?["CFBundleIdentifier"]
let url:URL = URL(string: "http://itunes.apple.com/lookup?bundleId=\(appID!)")!
let data = try Data(contentsOf: url)
let lookup = try JSONSerialization.jsonObject(with:data, options: []) as! [String:AnyObject]
print(lookup)
let resultCount:Int = lookup["resultCount"] as! Int
if (resultCount == 1)
var results = lookup["results"] as! [String:AnyObject] // ***Error***
if results.isEmpty
print(results)
catch
return true
请告诉我如何解析此响应
【问题讨论】:
设置断点检查lookup
中的内容。
【参考方案1】:
错误消息清楚地表明results
的值是一个数组。
let results = lookup["results"] as! [[String:Any]]
考虑到 JSON 字典在 Swift 3 中是 [String:Any]
【讨论】:
以上是关于无法将“__NSSingleObjectArrayI”类型的值转换为“NSDictionary”的主要内容,如果未能解决你的问题,请参考以下文章
无法将 createdAt 和 updatedAt 保存为日期时间值,也无法将后端保存为前端
C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable
无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS