【发布时间】:2015-12-15 18:17:01
【问题描述】:
我有一个蓝牙设备,它以每秒 400 赫兹的速度发送加速度计数据。我使用这些数据来做几件事:1.) 根据这些数据为轮子制作动画,以及 2.) 标准偏差。
然而,我的问题是,一段时间后(在打印 1000 行之后),应用程序在我使用数据创建 NSString 的同一行崩溃,因此我可以将该数据写入一个文本文件。当这个崩溃发生时,我检查字符串中的每个变量以确保它是有效的并且每个都是有效的。我已经看到 NSString 报告本身是一个 (INT),所以我认为某处存在内存泄漏。
我添加了一个@autoreleasepool{},但同一行崩溃了。这是它的屏幕截图。
【问题讨论】:
-
应用程序是多线程的吗?
-
是的,它是多线程的。
-
这个方法是线程安全的吗?有锁吗?对我来说,这似乎是胎面安全问题
-
无锁。我从 CoreBluetooth 回调接收数据并通过委托方法发送字节。有一个 for 循环可以创建 x,y,x 值的数组。
标签: ios objective-c crash nsstring