ios - Error: Deployment Update target 8.3 NSMutableArray and addObjectsFromArray - swift -
after updating xcode , device functions not running anymore. see it:
var jsonunico: nsmutablearray! = jsonresult["lista"] as? nsmutablearray self.tablelist.addobjectsfromarray(jsonunico)
error: cannot invoke 'addobjectsfromarray' argument list of type '(nsmutablearray!)'
it working yesterday before upgrading
note: tablelist nsmutablearray
swift 1.2 no longer implicitly converts between nsarray
, swift’s native array type – need explicitly cast 1 other. since addobjectsfromarray
takes swift array, means need convert [anyobject]
.
normally you’d more helpful error message: error: 'nsmutablearray' not implicitly convertible '[anyobject]'; did mean use 'as' explicitly convert?
, offer “fix-it”. looks isn’t happening because of use of implicitly-unwrapped optional nsmutablearray!
.
but… isn’t such bad thing, since using implicitly-unwrapped optionals when fetching values out of dictionaries dangerous (if entry ever not there, app crash). alternative is:
if let jsonunico = jsonresult["lista"] as? nsmutablearray { let tablelist = nsmutablearray() // xcode recommend adding "as [anyobject]" tablelist.addobjectsfromarray(jsonunico [anyobject]) }
but since you’re doing as
above it, may combine them:
if let jsonunico = jsonresult["lista"] as? [anyobject] { tablelist.addobjectsfromarray(jsonunico) }