こんにちは、私はあなたの多くがそれを行う方法をすでに知っていることを知っていますが、私は迅速なプログラミングの初心者であるため、私を助けてください.
このコードを検討して、変更を手伝ってください。
//私の読み取りコード
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)
}
//今、以下のようないくつかのローカル変数にそれらを保存しています
let b0 = myByteArray[0]
let b0 = myByteArray[1]
let b2 = myByteArray[2]
let b3 = myByteArray[3]
//ここで、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)
しかし、それは私に範囲外のインデックスを与えます。誰かがそれを行うためのより良い方法を知っていますか?