このアプリは数か月前にリリースされ、iOS 4/5 で完全に動作しました。iOS 6 の一部の画面でクラッシュするようになりました。
かなり簡単な実装。xib に AdBannerView があります。デラゲートに配線しました。デリゲート メソッドで広告を表示/非表示にします。クラッシュデータはこちら。
例外の種類: EXC_CRASH (SIGABRT)
最後の例外バックトレース:
0 CoreFoundation 0x36d9b29e __exceptionPreprocess + 158
1 libobjc.A.dylib 0x350ab97a objc_exception_throw + 26
2 CoreFoundation 0x36cec55a -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 130
3 CoreFoundation 0x36d230ce +[NSDictionary dictionaryWithObjects:forKeys:count:] + 46
4 iAd 0x3594c23e -[ADBannerView setDelegate:] + 126
5 Foundation 0x347b49cc -[NSObject(NSKeyValueCoding) setValue:forKey:] + 208
6 UIKit 0x382101dc -[UIView(CALayerDelegate) setValue:forKey:] + 156
7 Foundation 0x347b071e -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 294
8 CoreFoundation 0x36d21616 -[NSArray makeObjectsPerformSelector:] + 174
9 UIKit 0x38209240 -[UINib instantiateWithOwner:options:] + 1036
10 UIKit 0x38208abe -[UIViewController _loadViewFromNibNamed:bundle:] + 230
11 UIKit 0x38101020 -[UIViewController loadView] + 88
12 UIKit 0x3808b468 -[UIViewController loadViewIfRequired] + 64
13 UIKit 0x380e0136 -[UIViewController contentScrollView] + 22
14 UIKit 0x380e007c -[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:] + 24
15 UIKit 0x380dff60 -[UINavigationController _layoutViewController:] + 28
16 UIKit 0x380dfe84 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 268
17 UIKit 0x380df5c4 -[UINavigationController _startTransition:fromViewController:toViewController:] + 60
18 UIKit 0x380df4ac -[UINavigationController _startDeferredTransitionIfNeeded:] + 320
19 UIKit 0x380cdb8e -[UINavigationController pushViewController:transition:forceImmediate:] + 854
20 UIKit 0x380cd82e -[UINavigationController pushViewController:animated:] + 34
21 Hurricane 0x00002d9a -[TrackerViewController buttonPressed:] (TrackerViewController.m:111)
22 UIKit 0x381570a8 -[UIApplication sendAction:to:from:forEvent:] + 68
23 UIKit 0x3815705a -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
24 UIKit 0x38157038 -[UIControl sendAction:to:forEvent:] + 40
25 UIKit 0x381568ee -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 498
26 UIKit 0x38156de4 -[UIControl touchesEnded:withEvent:] + 484
27 UIKit 0x3807f5f4 -[UIWindow _sendTouchesForEvent:] + 520
28 UIKit 0x3806c804 -[UIApplication sendEvent:] + 376
29 UIKit 0x3806c11e _UIApplicationHandleEvent + 6150
30 GraphicsServices 0x3721f59e _PurpleEventCallback + 586
31 GraphicsServices 0x3721f1ce PurpleEventCallback + 30
32 CoreFoundation 0x36d7016e __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 30
33 CoreFoundation 0x36d70112 __CFRunLoopDoSource1 + 134
34 CoreFoundation 0x36d6ef94 __CFRunLoopRun + 1380
35 CoreFoundation 0x36ce1eb8 CFRunLoopRunSpecific + 352
36 CoreFoundation 0x36ce1d44 CFRunLoopRunInMode + 100
37 GraphicsServices 0x3721e2e6 GSEventRunModal + 70
38 UIKit 0x380c02fc UIApplicationMain + 1116
39 Hurricane 0x00002082 main (main.m:14)
40 Hurricane 0x0000203c start + 36
AdBannerView の配線を外すと、機能します。再配線してクラッシュします。この特定のコントローラーには辞書がありません。実際、他の画面につながるボタンは 6 つしかありません。本当に奇妙なことは、コードが正常に動作する他の画面の他の場所で使用されていることです。明らかに、以前は正常に機能していました。