8

私は本当に行き詰まっています!私は ObjC の専門家ではありませんが、今は Swift を使おうとしています。もっと簡単だと思っていましたが、そうではありませんでした。Craig が Swift を「C のない Objective-C」と呼ぶと言っていたのを覚えていますが、OS X の基盤には C 型が多すぎます。ドキュメントによると、多くの ObjC 型は、おそらく双方向で、Swift 型に自動的に変換されます。興味があります: C 型はどうですか?

これが私が立ち往生している場所です:

//array1:[String?], event.KeyCode.value:Int16
let s = array1[event.keyCode.value]; //return Int16 is not convertible to Int

私は ObjC でいくつかのことを試しました:

let index = (Int) event.keyCode.value; //Error

また

let index = (Int32) event.keyCode.value; //Error again, Swift seems doesn't support this syntax

Int16 を Int に変換する適切な方法は何ですか?

4

3 に答える 3

25

数値をある型から別の型に変換するには、新しいインスタンスを作成し、ソース値をパラメーターとして渡す必要があります。たとえば、次のようになります。

let int16: Int16 = 20
let int: Int = Int(int16)
let int32: Int32 = Int32(int16)

概念を明確にするために、変数宣言に明示的な型を使用しましたが、上記のすべてのケースで型を推測できます。

let int16: Int16 = 20
let int = Int(int16)
let int32 = Int32(int16)
于 2015-01-15T17:20:10.770 に答える