基本的には、私の問題は、int型とchar型の文字列変換の符号付きcharです。Signed Char to Int
オープンソースのココアブルートゥースアプリケーションでこのコードを見つけ、それを自分自身に適用しようとしています。
基本的には、変数「RSSI」から符号付きchar出力を取得し、それをintと文字列に変換し、ログに出力する文字列とそれ以上の計算を行うintに変換します。しかし、私が試しても、変換されているようには見えず、署名されたcharをそのままログに出力しようとするとEXEC_BAD_ACCESSを得るだけです。
署名されたcharの典型的な値は、 "-57" \ 307 '"となり、プロセスから直接引用されてからNSLogが保持します。コードは次のとおりです。
- (BOOL)isInRange {
BluetoothHCIRSSIValue RSSI = 127; /* Valid Range: -127 to +20 */
if (device) {
if (![device isConnected]) {
[device openConnection];
}
if ([device isConnected]) {
RSSI = [device rawRSSI];
[device closeConnection];
NSLog(RSSI);
}
}
return (RSSI >= -60 && RSSI <= 20);
}
ありがとうございます。
パーフェクト。ありがとう – Josh