我将NSLogger集成到我的iOS应用程序中,我发现在集成NSLogger后,我的应用程序变得容易冻结,尤其是在没有互联网时。 我在下面添加了代码到main.m,有人知道为什么吗?
Logger *logger = LoggerGetDefaultLogger();
LoggerSetOptions(logger,
kLoggerOption_BufferLogsUntilConnection |
kLoggerOption_CaptureSystemConsole |
kLoggerOption_BrowseBonjour |
kLoggerOption_BrowseOnlyLocalDomain);
LoggerSetupBonjour(logger, NULL, NULL));
这是崩溃日志:
Incident Identifier: 5278EF6A-1128-49D6-B31A-B6AA03AC856C
CrashReporter Key: 848d8e4999dd36db808023480dc660a86c173fee
Hardware Model: iPad6,7
Process: My App [386]
Path: /private/var/containers/Bundle/Application/579502B0-20F3-4C83-82F0-ED50BC79C831/My App.app/My App
Identifier: com.xiang.My App
Version: 1140 (1.0)
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: com.xiang.My App [490]
Date/Time: 2016-11-18 13:41:18.1326 +0900
Launch Time: 2016-11-18 13:33:07.3810 +0900
OS Version: iPhone OS 10.1.1 (14B100)
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SPRINGBOARD, Code 0x8badf00d
Triggered by Thread: 0
Filtered syslog:
None found
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libsystem_kernel.dylib 0x000000018e8d9948 writev + 8
1 CoreFoundation 0x000000018f909cc0 _CFLogvEx2Predicate + 452
2 CoreFoundation 0x000000018f909eec _CFLogvEx3 + 408
3 Foundation 0x00000001903f0454 _NSLogv + 132
4 Foundation 0x000000019031735c NSLog + 32
5 My App 0x00000001000511a4 0x100030000 + 135588
6 My App 0x0000000100050f2c 0x100030000 + 134956
7 My App 0x000000010008b18c 0x100030000 + 373132
8 My App 0x0000000100089530 0x100030000 + 365872
9 UIKit 0x00000001958a7dc0 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 728
10 UIKit 0x0000000195958b34 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 268
11 UIKit 0x0000000195a0bd5c _runAfterCACommitDeferredBlocks + 292
12 UIKit 0x00000001959fdb10 _cleanUpAfterCAFlushAndRunDeferredBlocks + 560
13 UIKit 0x000000019576c854 _afterCACommitHandler + 168
14 CoreFoundation 0x000000018f8d37dc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
15 CoreFoundation 0x000000018f8d140c __CFRunLoopDoObservers + 372
16 CoreFoundation 0x000000018f8d189c __CFRunLoopRun + 1024
17 CoreFoundation 0x000000018f800048 CFRunLoopRunSpecific + 444
18 GraphicsServices 0x0000000191286198 GSEventRunModal + 180
19 UIKit 0x00000001957e52fc -[UIApplication _run] + 684
20 UIKit 0x00000001957e0034 UIApplicationMain + 208
21 GroundStation Pro 0x00000001000f27b0 0x100030000 + 796592
22 libdyld.dylib 0x000000018e7e45b8 start + 4
答案 0 :(得分:0)
首先,您不应该向main.m
添加代码。请考虑在您的应用程序委托中放置这样的代码。
其次,0x8badf00d
崩溃是由于您的应用程序启动时间过长导致的已知错误。这可能是因为您将日志开始代码放在错误的位置,如上所述。或者它可能是别的东西。
作为一般规则,您在启动应用程序时所拥有的任何内容可能需要一些时间,应该延迟或放在后台线程上。应用程序启动应尽快让用户进入应用程序的主屏幕。