こんにちは私はあなたの多くがすでにそれを行うことができます知っているが、私は迅速なプログラミングの初心者ですように私を助けてください。swift 4の[UInt8]バイト配列を変更する最良の方法は何ですか?
今、私は
let b0 = myByteArray[0]
let b0 = myByteArray[1]
let b2 = myByteArray[2]
let b3 = myByteArray[3]
以下のようないくつかのローカル変数にそれらを格納しています//
let ReceiveData = rxCharacteristic?.value
if let ReceiveData = ReceiveData {
let ReceivedNoOfBytes = ReceiveData.count
myByteArray = [UInt8](repeating: 0, count: ReceivedNoOfBytes)
(ReceiveData as NSData).getBytes(&myByteArray, length: ReceivedNoOfBytes)
print("Data Received ",myByteArray)
}
マイ読み取ったコード//このコードを検討し、変更で私を助けて、
してください
// Textboxからのデータを挿入したい場合
var tb1 = textbox1.text
var b1 = tb1.flatMap{UInt8(String($0))}
var tb2 = textbox2.text
var b2 = tb2.flatMap{UInt8(String($0))}
//今、私は
let Transmitdata = NSData(bytes: bytes, length: bytes.count)
peripheral.writeValue(Transmitdata as Data, for: txCharacteristic!, type: CBCharacteristicWriteType.withoutResponse)
print("Data Sent",Transmitdata)
以下ここで私は現在、クラス宣言の下に新しいバイト配列を作成し、受信したバイト配列を割り当てるてるような機能ブロックを使用して、すべてのデータを書いています。その後、
以下class Example:UIViwecontroller{
var storebytes: [UInt8]()
func somefunc(){
storebytes = myByteArray
}
などmyByteArrayの最初の2つの位置の代わりに私のテキストボックスのデータを交換してみてください、その後transmitdataにそれを渡します。
これを行う簡単な方法はありますか?私は必要な場所にバイトを挿入するだけで、それを送信に渡しますか?
私は
bytes.insert(new data,at: index)
のようないくつかの方法を使用して試してみましたが、それは範囲外の私にインデックスを提供します。誰かがより良い方法を知っていますか?
こんにちはヴァディアン、ご回答に感謝の範囲を得ることができます。私はちょっと混乱しているのですが、上記のように自分のコードにコレクションタイプを実行する方法を表示できますか? :) – nar0909
'tb1.flatMap {UInt8(String($ 0)'}は何をやっているのですか? – vadian
こんにちは、私はそれを持っています:)よくtextbox.textは "12"と言う文字列を返しますが、私は上記のフラットマップを使用すると、私は[1,2]とそのUInt8を得るので、2つのUInt8番号に。希望は – nar0909