为什么这个for-in循环在空数组上运行?

时间:2013-10-30 18:07:07

标签: objective-c cocoa-touch loops core-bluetooth

这里发生了一些非常奇怪的事情:

1    - (void)peripheral:(CBPeripheral *)peripheral didDiscoverServices:(NSError *)error {
2        if (error) {
3            NSLog(@"Error discovering services: %@", [error localizedDescription]);
4            return;
5        }
6        for (CBService *service in peripheral.services) {
7            NSLog(@"found service");
8            if ([service.UUID isEqual:[CBUUID UUIDWithString:@"6D59"]]) { // SwitchaBLE UUID
9                [peripheral discoverCharacteristics:@[[CBUUID UUIDWithString:@"6D5A"], [CBUUID UUIDWithString:@"6D5B"], [CBUUID UUIDWithString:@"6D5C"]] forService:service];
10           }
11       }
12   }
  1. 我在第6行放了一个断点。在控制台中,我可以看到peripheral.services没有对象。
  2. 单步。再次点击第6行。
  3. 单步。走到第11行。预计。
  4. 单步。去第9行.WHAAAAAA?控制台:print service告诉我:error: use of undeclared identifier 'service'
  5. 刚刚发生了什么事?

0 个答案:

没有答案