gpt4 book ai didi

ios - objc_exception_throw/崩溃/堆栈跟踪

转载 作者:行者123 更新时间:2023-11-29 10:31:46 24 4
gpt4 key购买 nike

我正在尝试调试从 Flurry Analytics 获得的崩溃日志,但看不到问题所在。这是堆栈跟踪:

0   CoreFoundation                      0x181f36530 <redacted> + 132
1 libobjc.A.dylib 0x192f0c0e4 _objc_exception_throw + 60
2 CoreFoundation 0x181e248e8 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 420
3 CoreFoundation 0x181e3ff44 +[NSDictionary dictionaryWithObject:forKey:] + 60
4 memono 0x10005f96c -[AppDelegate iCLoudSyncCheckNotificationSync:] + 1244
5 CoreFoundation 0x181edcddc <redacted> + 20
6 CoreFoundation 0x181e1b370 __CFXNotificationPost + 2060
7 Foundation 0x182d3f520 -[NSNotificationCenter postNotificationName:object:userInfo:] + 72
8 memono 0x10005c02c -[AppDelegate syncWithCompletion:] + 660
9 libdispatch.dylib 0x19355d994 <redacted> + 24
10 libdispatch.dylib 0x19355d954 <redacted> + 16
11 libdispatch.dylib 0x19356220c __dispatch_main_queue_callback_4CF + 1608
12 CoreFoundation 0x181eee2ec <redacted> + 12
13 CoreFoundation 0x181eec394 <redacted> + 1492
14 CoreFoundation 0x181e191f4 _CFRunLoopRunSpecific + 396
15 GraphicsServices 0x18b23b6fc _GSEventRunModal + 168
16 UIKit 0x1867aa10c _UIApplicationMain + 1488
17 memono 0x100099b7c -[UpdatePromtRateViewController .cxx_destruct] + 220
18 libdyld.dylib 0x19358aa08 <redacted> + 4

我还遇到了其他一些崩溃,它总是以 [UpdatePromtRateViewController...] 开头。这只是我在应用更新后显示一次以提示用户对应用进行评分的 viewController。有一个按钮可以关闭我的应用程序并直接转到 App Store 应用程序中的我的应用程序。难道这不是“真正的崩溃”,我得到这个崩溃日志只是因为应用程序被这个按钮立即结束了?还是跟那本词典有关?也许我放了零对象?我可以通过做类似的事情来解决这个问题 - 用“if object is not nil”语句包围字典吗?

我不太擅长阅读堆栈跟踪,如果有人能给我提示这个崩溃日志试图告诉我什么,那就太好了!?

感谢您的帮助!

编辑

Flurry 分析没有给出其他消息...我正在做的是再次设置所有本地通知以使角标(Badge)图标编号排序...它工作正常,奇怪的是 [UpdatePromtRateViewController]总是出现在那个崩溃日志中,我只使用过一次,所以应该有其他没有那个的崩溃日志 -[UpdatePromtRateViewController] 因为我只在第一次应用程序启动时使用它,然后再也不会......这是代码我在那里做什么

NSEntityDescription *entityDescriptionDelegate = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:self.managedObjectContext];
NSFetchRequest *requestData = [[NSFetchRequest alloc] init];
[requestData setEntity:entityDescriptionDelegate];
NSError *error;


NSArray *objectsArray = [self.managedObjectContext executeFetchRequest:requestData error:&error];


for (NSManagedObject *object in objectsArray) {



if (!([object valueForKey:@"alarmDate"] == nil)) {


_badge += 1;


UILocalNotification *alarm = [[UILocalNotification alloc] init];
alarm.applicationIconBadgeNumber = _badge; // 1;
alarm.applicationIconBadgeNumber = 0;
alarm.timeZone = [NSTimeZone defaultTimeZone];

NSString *alarmTitleString = [[NSString alloc] initWithString:[object valueForKey:@"alarmTitle"]];

alarm.alertBody = alarmTitleString;
alarm.fireDate = [object valueForKey:@"alarmDate"];
alarm.soundName = UILocalNotificationDefaultSoundName;
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:[object valueForKey:@"alarmID"] forKey:@"ID"];

alarm.userInfo = userInfo;
[[UIApplication sharedApplication] scheduleLocalNotification:alarm];

[object setValue:@"yes" forKey:@"alarmSet"];


[UILocalNotification setBadge];

alarm.applicationIconBadgeNumber = 0;

最佳答案

此方法正在崩溃:iCLoudSyncCheckNotificationSync: 并且,正如您推测的那样,这很可能是因为您为 key 传递了 nil

崩溃跟踪意味着在 C++ 析构函数期间进行了大量繁重的工作。那是注定要失败的。但是崩溃轨迹可能是错误的;从析构函数调用 UIApplicationMain() 似乎有点奇怪。

无论如何,是的,这是一次真正的崩溃,即使它发生在应用程序终止时,您也应该找出原因并修复它。特别是,如果您的应用程序响应“退出”(例如按下按钮)而终止,那么它真的不应该触发云同步或其他缓慢的操作。

关于ios - objc_exception_throw/崩溃/堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29237514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com