簡體   English   中英

無法轉換類型為&#39;Swift._ContiguousArrayStorage的值 <Swift.AnyObject> &#39;至&#39;NSMutableArray&#39;

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM