我正在编写一个与蓝牙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_布尔值,则将值存储在数组中。这一切都很好,但self.rrInt被添加到我的mutablearray两次!我知道这一点,因为每次添加一个对象时添加一个NSLog来打印我的数组的计数,它每次都会增加2。
任何想法都将不胜感激!