2

Bluetooth 特性を読み取って、以下の temp という名前の文字列に保存しています。

NSString *temp = [[NSString alloc] initWithData:characteristic.value encoding:NSUTF8StringEncoding];

何らかの理由で、characteristic.value が空の文字列の場合、temp は値 @"" で作成されますが、これは理にかなっていますが、その temp.length は 17 に表示されています。

特性値に関する詳細:

(lldb) po characteristic.value
(NSData *) $0 = 0x1f5d9c70 <00000000 00000000 00000000 00000000 0000>
(lldb) po characteristic.value.length
error: property 'length' not found on object of type 'NSData *'
error: 1 errors parsing expression

temp が空の文字列かどうかを判断しようとすると、ロジックが機能しません

if([temp isEqualToString:@""]){

また奇妙なのは、ブレークポイントを指定して端末を使用してオブジェクトを印刷すると、これが得られることです...

(lldb) po temp
(NSString *) $0 = 0x1ddcf880 [no Objective-C description available]
(lldb) po temp.length
error: property 'length' not found on object of type 'NSString *'
error: 1 errors parsing expression

この文字列で何が起こっているか知っている人はいますか?

4

0 に答える 0