【发布时间】:2014-05-14 09:14:14
【问题描述】:
我目前正在开发一个低功耗蓝牙应用程序,我想使用 NSLog 打印我收集的信息。
这是我在所有属性都已更新时在 didUpdateValueForCharacteristic 方法末尾使用的代码(调试器确认):
NSLog(@"These are the information I found! %huBPM Position:%@ Hersteller:%@ ", self.heartRate, self.bodySensorLocation, self.manufacturerName);
NSLog(@"Modell:%@ SerialNumber:%@ Batterie:%@", self.modelNumber, self.serialNumber, self.batteryLevel);
属性真的只是标准:
@property (nonatomic, strong) NSString *manufacturerName;
@property (nonatomic, strong) NSString *modelNumber;
@property (nonatomic, strong) NSString *serialNumber;
@property (nonatomic, strong) NSString *batteryLevel;
@property (nonatomic, strong) NSString *bodySensorLocation;
@property (assign) uint16_t heartRate;
NSLog 输出如下:
2014-05-14 11:04:16.888 PulseSense[24493:60b] These are the information I found! 77BPM Position:Chest Hersteller:Polar Electro Oy
2014-05-14 11:04:16.889 PulseSense[24493:60b] SerialNumber:1312082746
我不知道为什么它不会打印 SerialNumber:self.serialNumber 和 Batterie:self.batteryLevel。我之前在一行中有两个 NSLog 命令,但这里发生了同样的事情。我在打印第三个属性后被剪掉了(所以连 SerialNumber 都不见了)。
有什么想法吗?
编辑 1: 所以我做了一些测试,结果是 Modell、SerialNumber 和 Batterie 在第一次执行我的 NSLog 语句时都为空。当第一个 String Modell 最终成为一个真实值(“H7”)时,这在最初的几次迭代中保持不变。这是第一次 NSLog 只打印 Modell 而忽略其他的(因为它们仍然是 null 并且将在一次迭代后成为一个值)。
【问题讨论】:
-
尝试清理并构建一次
-
它不打印到日志消息或变量?
-
你应该单步调试调试器中的代码,看看到底发生了什么。或尝试使用my logging "framework",它会告诉您日志消息的文件名和行号,而不是多余的日期和程序名称。
-
NSLog(@"Modell:%@", self.modelNumber); NSLog(@"SerialNumber:%@", self.serialNumber); NSLog(@"电池:%@",self.batteryLevel);使用它,现在检查你被击中的位置,同时删除所有断点并进行测试。
-
你是在看 Xcode 的控制台输出,还是在设备的控制台输出?
标签: ios objective-c nslog