我有以下代码:
queryParams = @{@"geo_location" : [GlobalData sharedGlobalData].latLong, @"sale_ids": selectedSaleId};
它有时在实时应用程序崩溃,但我们无法重现崩溃。我一直试图分析报告并了解崩溃的原因,但我没有成功。
我想帮助了解在什么情况下会发生以下崩溃:
1 __exceptionPreprocess + 1245624
2 libobjc.A.dylib objc_exception_throw + 34136
3 CoreFoundation -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 81576
4 CoreFoundation +[NSDictionary dictionaryWithObjects:forKeys:count:] + 81176
5 MyApp -[SaleViewController loadStores] (SaleViewController.m:378)
6 MyApp -[SaleViewController viewDidLoad](SaleViewController.m:158)
7 UIKit -[UIViewController loadViewIfRequired] + 63776
8 UIKit -[UIViewController __viewWillAppear:] + 160944
9 UIKit -[UINavigationController _startCustomTransition:] + 1766832
10 UIKit -[UINavigationController _startDeferredTransitionIfNeeded:] + 818800
11 UIKit -[UINavigationController __viewWillLayoutSubviews] + 817880
答案 0 :(得分:1)
当集合中的一个值为零时,崩溃是什么样的。您可以使用条件来防御此崩溃:
if ([GlobalData sharedGlobalData].latLong && selectedSaleId) {
queryParams = @{@"geo_location" : [GlobalData sharedGlobalData].latLong, @"sale_ids": selectedSaleId};
}
或者,或者手头的调试任务是找出为什么这两个值都是零。