CBCentral经理没有发现外围设备

时间:2013-10-11 16:27:20

标签: ios uinavigationcontroller cbcentralmanager

我有一个导航控制器,它有一个根视图控制器和两个tableview控制器。当我将第一个tableview控制器推入堆栈时,cbcentralmanager扫描BLE外设,一切都很好。但是,当我将第二个tableview控制器推入堆栈,然后将其弹出(返回第一个tableview控制器)时,cbcentralmanager扫描,但没有发现任何设备。这是第一个tableview控制器的代码。每次显示tableview控制器时,都会按预期调用viewWillAppear方法,但扫描不显示任何内容。

- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];

[AppDelegate app].cbCentral.delegate = self;
[AppDelegate app].peripheral.delegate = self;
[AppDelegate app].brspObject.delegate = self;

peripherals = [NSMutableArray new];
[self startScan];
}

- (void)startScan
{    
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
[peripherals removeAllObjects];
[self.tableView reloadData];

[[AppDelegate app].cbCentral scanForPeripheralsWithServices:[NSArray arrayWithObject:[Brsp brspServiceUUID]] options:nil];

[self performSelector:@selector(stopScan) withObject:nil afterDelay:5.0];
}

我过去曾设置过合适的代表而感到难过,但我想我的所有基地都在这里。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我不确定为什么会这样,但我移动了这些代码:

[AppDelegate app].cbCentral.delegate = self;
[AppDelegate app].peripheral.delegate = self;
[AppDelegate app].brspObject.delegate = self;

到 - (void)startScan方法,现在它可以工作了。