17811


swift2にて質問させてください。

TCP/IPまたはUDP通信を行いNSData型でdataは受信できているのですが  
swift2において、byte配列というような型は存在しないのでしょうか。

byte配列に変換し、そのxx番目の配列のｘビット目を抜き出す・・・  
当の処理を考えているのですが、どのようにしてNSData型のdataをbyte配列のようにして扱ってよいのかわからずに困っています。

初心者まるだしの質問で申し訳ないですが  
何かアドバイスいただけると助かります。


CC BY-SA 3.0
2015-10-19T05:45:03.250
17801
2015-10-19T08:14:29.137
12842
question
swift
NSData型からバイト配列に


XcodeのPlaygroundで動かしてみてください。

[code]

    import Foundation
    
    let aString = "Hello, world!"　
    // 文字列からNSDataインスタンスを作る。
    if let aData: NSData = aString.dataUsingEncoding(NSUTF8StringEncoding) {
        // aDataのバイト数と同じ大きさの配列を作る。
        var aBuffer = Array<Int8>(count: aData.length, repeatedValue: 0)
        // aBufferにバイナリデータを格納。
        aData.getBytes(&aBuffer, length: aData.length) // &がアドレス演算子みたいに使える。
        for aChar in aBuffer {
            print("\(aChar)") // 各文字のutf-8の文字コードが出力される。
        }
    }
    
[/code]

出力：

> 72 101 108 108 111 44 32 119 111 114 108 100 33

`NSData`から、バイナリデータを抽出する簡単なサンプルコードです。本来は、C言語の配列に`getBytes()`するところですが、Swiftの配列（`Array`）で代用できる点に注目してください。


CC BY-SA 3.0
2015-10-19T08:14:29.137
17811
2015-10-19T08:14:29.137
7362
17801
answer