質問: swift2にて質問させてください。 TCP/IPまたはUDP通信を行いNSData型でdataは受信できているのですが swift2において、byte配列というような型は存在しないのでしょうか。 byte配列に変換し、そのxx番目の配列のxビット目を抜き出す・・・ 当の処理を考えているのですが、どのようにしてNSData型のdataをbyte配列のようにして扱ってよいのかわからずに困っています。 初心者まるだしの質問で申し訳ないですが 何かアドバイスいただけると助かります。
回答: XcodeのPlaygroundで動かしてみてください。 ``` import Foundation let aString = "Hello, world!" // 文字列からNSDataインスタンスを作る。 if let aData: NSData = aString.dataUsingEncoding(NSUTF8StringEncoding) { // aDataのバイト数と同じ大きさの配列を作る。 var aBuffer = Array(count: aData.length, repeatedValue: 0) // aBufferにバイナリデータを格納。 aData.getBytes(&aBuffer, length: aData.length) // &がアドレス演算子みたいに使える。 for aChar in aBuffer { print("\(aChar)") // 各文字のutf-8の文字コードが出力される。 } } ``` 出力: > > 72 101 108 108 111 44 32 119 111 114 108 100 33 > > > `NSData`から、バイナリデータを抽出する簡単なサンプルコードです。本来は、C言語の配列に`getBytes()`するところですが、Swiftの配列(`Array`)で代用できる点に注目してください。