2015-12-15 47 views
0

我有一个蓝牙设备以400Hz每秒发送加速计数据。我用这些数据做了以下几件事:1)根据这些数据对车轮进行动画处理,2)标准偏差。NSString记录到文件时崩溃

我的问题是,然而,一段时间后(后线1000的打印),在同一条直线上的应用程序崩溃,我创建一个NSString的数据,所以我可以将数据写入到一个文本文件中。当发生这种崩溃时,我检查字符串中的每个变量以确保它是有效的,并且每个变量都是有效的。我已经看到NSString报告自己是一个(INT),所以我认为有某处存在内存泄漏。

我添加了@autoreleasepool{},但同一行崩溃。这是一个截图。

enter image description here 我怎样才能找出是什么导致崩溃?

+0

应用程序是多线程的吗? –

+0

是的,它是多线程的。 – WrightsCS

+0

这种方法是线程安全的吗?有没有锁?看起来像踩我的安全问题 –

回答

0

这是通过将copy添加到_locationString来解决的。

[_locationString copy] 
+0

那么你知道它为什么会发生,因为修复对我来说看起来不太稳固。更好的做法是使用'locationString'属性,它具有'copy'属性,因此在设置时会被复制,而不是在使用时(并且每次访问它时都不需要该代码)。 – trojanfoe

+0

我确实将'locationString'属性设置为'copy'。出于某种原因,我还必须添加上述内容。不知道为什么。 – WrightsCS

+0

如果它是一个属性,那么你应该使用getter(即'self.locationString')。 – trojanfoe