我正在编写一个与蓝牙 LE 设备通信并有一个处理连接的单例的应用程序。我想将来自蓝牙设备的数据值存储在一个数组中以供稍后处理,并通过 NSlog 将数据值输出到控制台。但是,当我将通过 NSLog 输出的相同值添加到 NSMutableArray 中时,它会被添加两次,我不知道为什么。
这是我打印到 NSLog 并存储值的代码。
if (flags & 0x10) {
while (reportData2 < reportDataEnd2) {
int r2rint = CFSwapInt16LittleToHost(*(uint16_t*) reportData2);
NSLog(@"%i", r2rint);
self.rrInt = [NSString stringWithFormat:@"%d", r2rint];
// record if selected
if(recording_)
{
[rrValues_ addObject:self.rrInt];
}
reportData2 += 2;
}
上面的代码查找 0x10 标志,如果它在那里,它将获取该位和其他任何内容,直到它结束并将其打印到屏幕上。如果启用了recording_boolean值,则将值存储在数组中。这一切都很好,但是 self.rrInt 被添加到我的可变数组中两次!我知道这一点,因为每次添加一个对象时添加一个 NSLog 来打印我的数组的计数,它每次都会增加 2。
任何想法将不胜感激!