ios - CoreBluetooth:CBCharacteristic/service -> EXC_BAD_ACCESS
问题描述
在使用 的iOS
应用程序中CoreBluetooth
,我有一个包含类型对象的数组(名为 characArray)CBCharacteristic
。
当一个元素被添加到数组中时:
characArray.append(element)
我使用以下方法检查元素:
print("element.service = \(element.service)")
print("element.service.uuid = \(element.service.uuid)")
到目前为止,我从未发现任何问题。
在代码里面我也有这个循环:
for x in characArray {
print("x.service = \(x.service)")
print("x.service.uuid = \(x.service.uuid)")
}
它通常运行良好,但在某些情况下会崩溃。
使用调试器仔细查看正在发生的事情时。
x 变量看起来很好,但 x.service(以及 x.service.uuid)会产生错误消息:
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x1923456...).
x.service 为 nil 甚至不会发生,因此测试 (x.service != nil) 不是一种选择。所以问题是:如何控制流程并看到我不应该执行:
print("x.service = \(x.service)")
听起来 x 变量在某些时候已经丢失(释放?)。有没有方便的方法来检查哪里?
解决方案
推荐阅读
- terraform - 从 Terraform 的列表中选择一系列元素
- java - 使用传递json对象的java客户端调用Rest API
- algorithm - 在有向循环图中找到最长的路径
- javascript - Javascript 音频 currentTime 在非 Chrome 浏览器上不起作用
- node.js - 使用其他字段填充文档
- html - Safari 的 CSS 网格(网格模板列)修复?
- python - 游戏重启 PyQT4 Python
- android - 在android(kotlin)中向下滚动ListView时发生错误
- android - 如何使用改造从缓存图像发出 MultipartBbody.Part 请求
- python-3.x - 向实例添加属性