【问题标题】:CBCentral manager doesn't discover peripheralsCBCentral 管理器未发现外围设备
【发布时间】:2013-10-19 19:37:02
【问题描述】:

我有一个导航控制器,它有一个根视图控制器和两个表视图控制器。当我将第一个 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];
}

过去我一直被设置适当的代表所困扰,但我认为我的所有基础都在这里。有什么想法吗?

【问题讨论】:

    标签: ios uinavigationcontroller cbcentralmanager


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-27
      • 2016-05-03
      相关资源
      最近更新 更多