に架設されているようにはNSArray
NSNumber
の注釈を付ける方法がありますとして注釈にNSArray <NSNumber *> *のObjective-Cでのそれは配列<Int>
var myProperty: [Int]
var myProperty: [NSNumber]
の代わりに?
私はNS_SWIFT_NAME
を知っていますが、タイプを変更することはできません。
に架設されているようにはNSArray
NSNumber
の注釈を付ける方法がありますとして注釈にNSArray <NSNumber *> *のObjective-Cでのそれは配列<Int>
var myProperty: [Int]
var myProperty: [NSNumber]
の代わりに?
私はNS_SWIFT_NAME
を知っていますが、タイプを変更することはできません。
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>
私はこれを正しい答えとして受け入れます。最初の質問の後、私はいくつかの研究を行い、さらにUIKitもこれを行います。それは不可能だと思います。私はちょうどそれを正しいタイプにキャストする私のユーザーの責任にしたくないです。ありがとう! – Trenskow
をキャストする必要があり明確な
[Int]
タイプを取得するには、より明確に説明できますか?あなたは即座に 'Int'配列または' NSNumber'配列を必要としますか? Objective cの 'Int'配列ですか? – trungducObjective-Cの 'NSArray *'からSwiftの 'Int'配列です。 –
Trenskow
質問をした後、もう少し調べました。私はそれが可能だとは思わない。あなたが 'UIGestureRecognizer'の' allowedTouchTypes'プロパティを見ているとします。これも 'NSArray *'戻り型であり、 '[NSNumber]'としてSwiftにインポートされます。 –
Trenskow