use*_*387 1 arrays ios swift anyobject swift3
我是swift的新手,在我的代码中我从某个电子邮件中获取JSON,JSON数据首先被放入swift的数组中,但是如果数组为null或者没有Json数据我得到这个错误
无法将'NSNull'(0x1067a5748)类型的值转换为'NSArray'(0x1067a4c58).
我一直试图通过阅读其他帖子来解决这个问题,例如检查可选数组是否为空,但它不起作用.问题来自下面的代码
session.dataTask(with:request, completionHandler: {(data, response, error) in
if error != nil {
print(error)
} else {
do {
let parsedData = try JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! [String:Any]
if let musicJob = parsedData["music"] as! [AnyObject]? {
for S in musicjob {
if let genre = S["genre"] as? String {
self.genres.append(genre)
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果Json为null,我就会在这一行得到错误
if let musicJob = parsedData["music"] as! [AnyObject]?
Run Code Online (Sandbox Code Playgroud)
所述musicJob计数的对象,例如"30个值或44个值"等的数量.如果没有Json那么它返回nil并且它崩溃了.反正我是否可以捕获nil或空数组的值,以便应用程序不会崩溃?只要musicJob数组不为空,一切都有效.
试试这个:
if let musicJob = parsedData["music"] as? [AnyObject]
Run Code Online (Sandbox Code Playgroud)