2017-09-22 1 views
0
group.issues = temp.sortedArray(using: [sortDescriptor]) as! NSMutableArray 

システムのバージョンにiOSの11.0、Xcodeの9.0です。は、型の値をキャストすることができませんでした 'Swift._SwiftDeferredNSArray'(0x11241ab30) 'NSMutableArrayの'(0x1109ef598)

どうすればこの問題を解決できますか?

+4

メッセージをSwiftの 'Array'を' NSMutableArray'にキャストすることはできません。 Swiftでは 'NSMutable ...'コレクション型はまったく使用しないでください。 'var'キーワードを使うと、自由に変更可能です。 – vadian

答えて

3

実際に何をしているかによって、おそらくvarと宣言されている変更可能なSwift配列を使用する方がよいでしょう。しかし、あなたが実際にいくつかの理由で参照セマンティクスを必要とするならば、あなたはこのようなNSMutableArrayを行うことができます。Objective-Cのブリッジは不変NSArrayにスウィフト配列を橋渡しするので、あなたはそれをキャストすることはできません

group.issues = NSMutableArray(array: temp.sortedArray(using: [sortDescriptor])) 

理由がありますこれは、あなたが突然変異するメソッドを呼び出そうとすると例外をスローします。

再び、しかし、行うための最善のことは、ちょうどvarとしてissuesプロパティを宣言することでスウィフト配列を、使用している:好き

struct Group { 
    ... 

    var issues = [String] // or whatever type goes inside the array 

    ... 
} 

それからちょうどそれを割り当てます。

group.issues = temp.sortedArray(using: [sortDescriptor]) 
関連する問題