首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CBPeripheralManager AddService上的iOS崩溃断言失败:

CBPeripheralManager AddService上的iOS崩溃断言失败:
EN

Stack Overflow用户
提问于 2017-07-17 12:37:38
回答 1查看 297关注 0票数 1

我在iOS内核蓝牙的[CBPeripheralManager AddService:]上遇到了崩溃问题。

这似乎是由于addService方法中的断言失败造成的。我试了这么多方法,还是想不出问题。

根据我的理解,这不是空指针异常,因为我已经测试了将nil值作为AddService参数传递,这会产生不同的问题。

我已经实现了CBPeripheralManager的所有委托,包括CBCentral委托。

一般来说,它工作得很好。通常情况下,我不能故意重现这个问题。但它发生得很突然。

请帮帮忙。崩溃日志:

代码语言:javascript
复制
0   CoreFoundation                 0x18b3cafe0 __exceptionPreprocess + 124
1   libobjc.A.dylib                0x189e2c538 objc_exception_throw + 56
2   CoreFoundation                 0x18b3caeb4 +[NSException raise:format:arguments:] + 104
3   Foundation                     0x18be62720 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 112
4   CoreBluetooth                  0x1922ab420 -[CBPeripheralManager addService:] + 820
5   MyApp                        0x10110e1f4 -[MyPeripheralManager addServiceIntoPeripheralManager] (MyPeripheralManager.m:202)

Code Snipet:

代码语言:javascript
复制
-(void)addService{
if (!isServiceAdded) {
    CLLog("Add Service timer started");
    [backgroundTaskManager manageBackgroundRunningTask];
    /*
     AddService will be called after 5 seconds
     when application launching finished or iOS BT on
     */
    [self performSelector:@selector(addServiceIntoPeripheralManager) withObject:self afterDelay:SERVICE_ADDING_DELAY]; // 5 secs

} else {
    CLDbg("Service already added");
}
}
- (void)addServiceIntoPeripheralManager{
CLLog("Add Service timer expired");
CLDbg("Service Adding: %@", [UUIDString]);
[cbPeripheralManager addService:Service];
}

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-07-17 13:17:16

您没有实现BluetoothManager的回调更新

请参阅this answer

This answer

我希望这能对你有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45136054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档