2

このアプリは数か月前にリリースされ、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 つしかありません。本当に奇妙なことは、コードが正常に動作する他の画面の他の場所で使用されていることです。明らかに、以前は正常に機能していました。

4

1 に答える 1

0

はっきりさせておきますが、iOS 6 では、 AdBannerView の非推奨のプロパティとメソッドがいくつかあります。これがクラッシュの原因だと思います。

これをチェックしてください

http://developer.apple.com/library/ios/DOCUMENTATION/UserExperience/Reference/ADBannerView_Ref/Reference/Reference.html#//apple_ref/doc/uid/TP40009562-CH1-DontLinkElementID_9

于 2012-09-27T11:05:51.770 に答える