我的应用程序在某种程度上崩溃了UIApplicationMain设备的iOS 10.3.1方法。



到目前为止,这是我记录数据的结果:

0   libobjc.A.dylib 0x00000001943afbd0 objc_msgSend + 12
1   CoreFoundation 0x0000000182b7bf6c ___forwarding___ + 436
2   CoreFoundation 0x0000000182a7eccc __forwarding_prep_0___ + 88
3   CoreFoundation 0x0000000182b7e100 __invoking___ + 140
4   CoreFoundation 0x0000000182a7a2fc -[NSInvocation invoke] + 292
5   WebCore 0x000000019148aefc HandleDelegateSource() + 116
6   CoreFoundation 0x0000000182b30240 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20
7   CoreFoundation 0x0000000182b2f4e4 __CFRunLoopDoSources0 + 260
8   CoreFoundation 0x0000000182b2d594 __CFRunLoopRun + 708
9   CoreFoundation 0x0000000182a592d4 CFRunLoopRunSpecific + 392
10  GraphicsServices 0x000000018c26f6fc GSEventRunModal + 164
11  UIKit 0x000000018761efac UIApplicationMain + 1484
!   12  my_app_name 0x00000001000c9954 main (main.m:14)
13  libdyld.dylib 0x0000000194a1aa08 start + 0

这是方法:
// If nil is specified for principalClassName, the value for NSPrincipalClass from the Info.plist is used. If there is no
// NSPrincipalClass key specified, the UIApplication class is used. The delegate class will be instantiated using init.
UIKIT_EXTERN int UIApplicationMain(int argc, char *argv[], NSString * __nullable principalClassName, NSString * __nullable delegateClassName);

关于如何调试这种无效的内存引用错误的任何想法?

最佳答案

可能是由重命名的IBOutlet实例变量与具有旧名称隐藏在XML中的相应.xib文件之间不匹配引起的?

有关Xcode重构中导致应用程序在执行任何代码之前崩溃的错误的深入示例,请执行以下操作:

IBOutlet Name Change Causing Crash at UIApplicationMain

10-08 00:43