間違った結果を与える検索のようになります。私は私が;
を見つけた場合にのみ、それを印刷したい文字列内の文字は最後に、私はチャンクで来るのBluetoothからの着信文字列を持っている
sentData1;
終了:
if let str = String(data: characteristic.value!, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
{
//data comes in chunks
if (str.range(of: ";") == nil){dataIn+=str; return} //stop if not ;
print("BLE:DATAIN:",dataIn) //final
dataIn=""
}
これは常に:BLE:DATAIN: sent
を出力します。 到着データが期待どおりであることを確認しました、ハーフワードを停止しない唯一の方法は、私が探す文字を@
または何かに変更した場合、それは単語全体を収集し、停止しませんsent
。
NSNotfound
でも試してみます。あなたはそれが;
が含まれているか、いないことを確認しているif
状態で
if let str = String(data: characteristic.value!, encoding: String.Encoding(rawValue: String.Encoding.utf8.rawValue))
{
//data comes in chunks
if (str.range(of: ";") != nil){dataIn+=str; return} //stop if not ;
print("BLE:DATAIN:",dataIn) //final
dataIn=""
}
このコードはループ内にありますか? –
ありがとうございました。デリゲート機能では、ブルートゥースデータを入力するたびに呼び出され、手紙でそれらを取得します。 – Curnelious
サイドノート:長めの 'String.Encoding(rawValue:String.Encoding.utf8.rawValue)'を '.utf8'(冗談なし)に置き換えることができます – vadian