无法将 'Swift._ContiguousArrayStorage<Swift.AnyObject>' 类型的值转换为 'NSMutableArray'
could not cast value of type 'Swift._ContiguousArrayStorage<Swift.AnyObject>' to 'NSMutableArray'
我不小心将 phone 中的 iOS 版本从 10.3.3 更新到了 11.0.3。因此,我不得不将 xcode 升级到最新的 9.1 版本。现在,当我 运行 我的代码在 xcode 9.1 中出现时
could not cast value of type
'Swift._ContiguousArrayStorage' to 'NSMutableArray'
似乎不再有从 'AnyObject' 数组到 'NSMutableArray' 的转换。但是我在整个代码中都使用了这种转换。我花了将近一天的时间尝试使用 [[String : AnyObject]] 而不是 [AnyObject] 这不是一个好主意,因为它会影响整个代码并且感觉我正在从头开始重新编写我的代码。任何人都可以提出更好的解决方案吗?
使用
解决了
(MyAnyObjectArray! as NSArray).mutableCopy() as! NSMutableArray
而不是
MyAnyObjectArray as! NSMutableArray
当我使用 xcode 8.3.3 和 swift 3.2 时,使用 .mutableCopy() 很容易出错。不过现在看来可以用了。有点困惑。 :(
SWIFT-4.
SORTING OF NSARRAY OR MUTABLEARRAY IN SWIFT
如果你有 NSArray 那么它应该很容易完成。如果你有 NSMutableArray,请参考这个。
var ary_country:NSMutableArray = []
print("Before ",ary_country) //"A", "E", "D", "B"
let sorted = ary_country.sorted {([=10=] as AnyObject).localizedStandardCompare( as! String) == .orderedAscending}
ary_country = (sorted as NSArray).mutableCopy() as! NSMutableArray
print("After", ary_country) //"A", "B", "C", "D"
正如我在评论中看到的那样,我认为应该接受答案:
NSMutableArray(array: anyObjectArray)
我不小心将 phone 中的 iOS 版本从 10.3.3 更新到了 11.0.3。因此,我不得不将 xcode 升级到最新的 9.1 版本。现在,当我 运行 我的代码在 xcode 9.1 中出现时
could not cast value of type 'Swift._ContiguousArrayStorage' to 'NSMutableArray'
似乎不再有从 'AnyObject' 数组到 'NSMutableArray' 的转换。但是我在整个代码中都使用了这种转换。我花了将近一天的时间尝试使用 [[String : AnyObject]] 而不是 [AnyObject] 这不是一个好主意,因为它会影响整个代码并且感觉我正在从头开始重新编写我的代码。任何人都可以提出更好的解决方案吗?
使用
解决了(MyAnyObjectArray! as NSArray).mutableCopy() as! NSMutableArray
而不是
MyAnyObjectArray as! NSMutableArray
当我使用 xcode 8.3.3 和 swift 3.2 时,使用 .mutableCopy() 很容易出错。不过现在看来可以用了。有点困惑。 :(
SWIFT-4.
SORTING OF NSARRAY OR MUTABLEARRAY IN SWIFT
如果你有 NSArray 那么它应该很容易完成。如果你有 NSMutableArray,请参考这个。
var ary_country:NSMutableArray = []
print("Before ",ary_country) //"A", "E", "D", "B"
let sorted = ary_country.sorted {([=10=] as AnyObject).localizedStandardCompare( as! String) == .orderedAscending}
ary_country = (sorted as NSArray).mutableCopy() as! NSMutableArray
print("After", ary_country) //"A", "B", "C", "D"
正如我在评论中看到的那样,我认为应该接受答案:
NSMutableArray(array: anyObjectArray)