2017-10-29 7 views
1

に架設されているようにはNSArrayNSNumberの注釈を付ける方法がありますとして注釈にNSArray <NSNumber *> *のObjective-Cでのそれは配列<Int>

var myProperty: [Int]var myProperty: [NSNumber]の代わりに?

私はNS_SWIFT_NAMEを知っていますが、タイプを変更することはできません。

+0

をキャストする必要があり明確な[Int]タイプを取得するには、より明確に説明できますか?あなたは即座に 'Int'配列または' NSNumber'配列を必要としますか? Objective cの 'Int'配列ですか? – trungduc

+0

Objective-Cの 'NSArray *'からSwiftの 'Int'配列です。 – Trenskow

+0

質問をした後、もう少し調べました。私はそれが可能だとは思わない。あなたが 'UIGestureRecognizer'の' allowedTouchTypes'プロパティを見ているとします。これも 'NSArray *'戻り型であり、 '[NSNumber]'としてSwiftにインポートされます。 – Trenskow

答えて

1

Objective-Cからシンボルをインポートするときに、静的タイプを変更することはできません。

ただし、型キャストなしでSwift Int配列を割り当てることができます(fooはObjCクラスのインスタンスです)。ただし、タイプは変更されません。一方

foo.myProperty = [1, 2, 3, 4, 5] 
print(type(of: foo.myProperty)) // Optional<Array<NSNumber>> 

あなたがタイプ

let mySwiftProperty = foo.myProperty as! [Int] 
print(type(of: mySwiftProperty)) // Array<Int> 
+0

私はこれを正しい答えとして受け入れます。最初の質問の後、私はいくつかの研究を行い、さらにUIKitもこれを行います。それは不可能だと思います。私はちょうどそれを正しいタイプにキャストする私のユーザーの責任にしたくないです。ありがとう! – Trenskow

関連する問題

 関連する問題