iOS崩溃报告:EXC_崩溃(SIGABRT)-stringByAppendingString

iOS崩溃报告:EXC_崩溃(SIGABRT)-stringByAppendingString,ios,objective-c,iphone,crash-reports,Ios,Objective C,Iphone,Crash Reports,我正在尝试修复一个无法重现的错误,它不会发生在我的设备(iPhone 5s)或任何iOS模拟器上,但只在我客户端的iPhone 7上发生过一次。当客户端删除并再次下载应用程序时,bug消失了,所以我现在正在搜索一个幽灵 我能够从客户的电话中获取崩溃日志文件并将其符号化。以下是我提取的一些有用信息: Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Excepti

我正在尝试修复一个无法重现的错误,它不会发生在我的设备(iPhone 5s)或任何iOS模拟器上,但只在我客户端的iPhone 7上发生过一次。当客户端删除并再次下载应用程序时,bug消失了,所以我现在正在搜索一个幽灵

我能够从客户的电话中获取崩溃日志文件并将其符号化。以下是我提取的一些有用信息:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0
在非符号化碰撞报告中:(勾选第2行和第3行)

在符号化碰撞报告中:(勾选第4行和第5行)

因此,在联合国象征性坠机报告的第三行,它说:

0x18d324df0 -[NSString stringByAppendingString:] + 112
在符号化碰撞报告的第4行:

0x10469f928 -[AppDelegate initViewController] (AppDelegate.m:96)
在96行的AppDelegate中,我有以下代码:

NSString *backColorString = [@"#" stringByAppendingString:[myModel sharedInstance].theme.BackColor];
所以,如果问题真的在这里,唯一的错误就是

[HotelStay sharedInstance].theme.BackColor
必须返回nil或“”


问题是我尝试了这两种方法,但我无法重现问题。这里有什么我遗漏了或做错了吗?

如果在
NSString
上使用
stringByAppendingString
,最终会导致泄漏,因为与初始
NSString
关联的指针会四处移动,指向由append创建的新字符串,而使用
NSMutableString
,指针始终指向该可变字符串。我想这应该是问题所在,但我想的是根据
苹果文档
附加到接收器的字符串。如果该值为零,则该值不得为零。如果主题为零而不是背景色,则会引发
NSInvalidArgumentException

如果主题为零,则会发生什么情况?是的,我尝试将其设置为零,但我无法再现客户端手机在应用程序崩溃时的完全相同屏幕。该应用程序可能处于“中间”状态,无法再现。我不知道这件事有多严重,但通常情况下,如果经过一天或反复试验,对于一次事件,我会把责任归咎于运气,然后去做其他事情。如果你有300个用户有这个功能,那就不一样了,但是一个人呢?据我们所知,手机落后了,有一种你无法复制的比赛条件,而且这种情况再次发生的几率是百万分之一。继续检查您的崩溃日志以查找此错误,并在获得更多错误后进行调查。除非有人能在这方面帮助你。谢谢你的意见,我很感激。请阅读-总结是,这不是一个理想的方式来解决志愿者,可能是反作用,以获得答案。请不要在你的问题中添加这一点。这只是一种病态,但这种情况在非常罕见的情况下只会发生一次。在我的客户重新下载这个应用程序之前,我告诉他把它杀掉,然后再打开它,这个bug仍然存在。是的!就连我这几次在不同的设备上也遇到过类似于iPhone 6崩溃这样的问题。使用
6S可以正常工作。再次安装它可以正常工作,正如你所说的,这只是一种病态。所以我想我必须在使用stringByAppendingString的项目中用NSMutableString替换所有NSString?这个答案毫无意义。您不需要将
NSMutableString
stringByAppendingString
一起使用。这里没有漏洞。
NSString *backColorString = [@"#" stringByAppendingString:[myModel sharedInstance].theme.BackColor];
[HotelStay sharedInstance].theme.BackColor