Error: Deployment Update target 8.3 NSMutableArray and addObjectsFromArray - swift
Error: Deployment Update target 8.3 NSMutableArray and addObjectsFromArray - swift
更新 xcode 和我的设备后,某些功能不再 运行。
看到它:
var jsonUnico: NSMutableArray! = jsonResult["lista"] as? NSMutableArray
self.tableList.addObjectsFromArray(jsonUnico)
错误:无法使用类型为“(NSMutableArray!)”的参数列表调用 'addObjectsFromArray'
昨天升级前还可以用
注意:表列表是一个 NSMutableArray
Swift 1.2 不再在 NSArray
和 Swift 的本机数组类型之间隐式转换——您需要显式地从一个转换为另一个。由于 addObjectsFromArray
采用 Swift 数组,这意味着您需要将其转换为 [AnyObject]
.
通常您会收到更有帮助的错误消息:error: 'NSMutableArray' is not implicitly convertible to '[AnyObject]'; did you mean to use 'as' to explicitly convert?
,并提供“修复它”的建议。但看起来这并没有发生,因为您使用了隐式展开的可选 NSMutableArray!
.
但是……这并不是一件坏事,因为在从字典中获取值时使用隐式展开的可选值是危险的(如果条目不存在,您的应用程序将崩溃)。另一种选择是:
if let jsonUnico = jsonResult["lista"] as? NSMutableArray {
let tableList = NSMutableArray()
// Xcode will recommend adding the "as [AnyObject]"
tableList.addObjectsFromArray(jsonUnico as [AnyObject])
}
但是既然你已经在上面做了一个as
,你不妨把它们结合起来:
if let jsonUnico = jsonResult["lista"] as? [AnyObject] {
tableList.addObjectsFromArray(jsonUnico)
}
更新 xcode 和我的设备后,某些功能不再 运行。 看到它:
var jsonUnico: NSMutableArray! = jsonResult["lista"] as? NSMutableArray
self.tableList.addObjectsFromArray(jsonUnico)
错误:无法使用类型为“(NSMutableArray!)”的参数列表调用 'addObjectsFromArray'
昨天升级前还可以用
注意:表列表是一个 NSMutableArray
Swift 1.2 不再在 NSArray
和 Swift 的本机数组类型之间隐式转换——您需要显式地从一个转换为另一个。由于 addObjectsFromArray
采用 Swift 数组,这意味着您需要将其转换为 [AnyObject]
.
通常您会收到更有帮助的错误消息:error: 'NSMutableArray' is not implicitly convertible to '[AnyObject]'; did you mean to use 'as' to explicitly convert?
,并提供“修复它”的建议。但看起来这并没有发生,因为您使用了隐式展开的可选 NSMutableArray!
.
但是……这并不是一件坏事,因为在从字典中获取值时使用隐式展开的可选值是危险的(如果条目不存在,您的应用程序将崩溃)。另一种选择是:
if let jsonUnico = jsonResult["lista"] as? NSMutableArray {
let tableList = NSMutableArray()
// Xcode will recommend adding the "as [AnyObject]"
tableList.addObjectsFromArray(jsonUnico as [AnyObject])
}
但是既然你已经在上面做了一个as
,你不妨把它们结合起来:
if let jsonUnico = jsonResult["lista"] as? [AnyObject] {
tableList.addObjectsFromArray(jsonUnico)
}