0

我正在编写一个与蓝牙 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。

任何想法将不胜感激!

4

0 回答 0