[英]Could not cast value of type '()' (0x2c2fb50) to 'Swift.AnyObject
[英]could not cast value of type 'Swift._ContiguousArrayStorage<Swift.AnyObject>' to 'NSMutableArray'
我不小心將手機中的iOS版本從10.3.3更新到了11.0.3。 因此,我不得不將xcode升級到最新的9.1版本。 現在,當我在xcode 9.1中運行代碼時,
無法將類型“ Swift._ContiguousArrayStorage”的值轉換為“ NSMutableArray”
似乎不再有從“ AnyObject”數組到“ NSMutableArray”的轉換。 但是我在整個代碼中都使用了這種轉換。 我花了將近一天的時間嘗試使用[[String:AnyObject]]而不是[AnyObject],這不是一個好主意,因為它會影響整個代碼,並且感覺就像我從頭開始重新編寫代碼。 任何人都可以提出更好的解決方案。
通過使用解決
(MyAnyObjectArray!as NSArray).mutableCopy()as! NSMutableArray
代替
MyAnyObjectArray為! NSMutableArray
當我使用xcode 8.3.3和Swift 3.2時,使用.mutableCopy()容易出錯。 但是現在看來可以使用了。 有點困惑。 :(
正如我在評論中看到的那樣,我認為應該回答:
NSMutableArray(array: anyObjectArray)
SWIFT-4。
在SWIFT中對NSARRAY或多變量進行排序
如果您有NSArray,則應輕松完成。 如果您有NSMutableArray,請參閱此文檔。
var ary_country:NSMutableArray = []
print("Before ",ary_country) //"A", "E", "D", "B"
let sorted = ary_country.sorted {($0 as AnyObject).localizedStandardCompare($1 as! String) == .orderedAscending}
ary_country = (sorted as NSArray).mutableCopy() as! NSMutableArray
print("After", ary_country) //"A", "B", "C", "D"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.