Пытаясь реализовать iAd в универсальном приложении с несколькими различными контроллерами представления, попытались реализовать пример кода из набора iAd от Apple, как базовый в отдельном viewcontroller, так и по отдельности с использованием кода navigationcontroller, оба привели к сбою, которыйссылается на pngData, добавленный в словарь, когда ноль.В контроллере представления нет словаря и нет ничего с именем pngData.Это трассировка стека -
2012-03-14 15:24:24.389 TheApp[11372:207] CRASH: -[__NSCFDictionary setObject:forKey:]: attempt to insert nil value (key: pngData)
2012-03-14 15:24:24.390 TheApp[11372:207] Stack Trace: (
0 CoreFoundation 0x0328f5a9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x030be313 objc_exception_throw + 44
2 CoreFoundation 0x03247ef8 +[NSException raise:format:arguments:] + 136
3 CoreFoundation 0x03247e6a +[NSException raise:format:] + 58
4 CoreFoundation 0x0328de15 -[__NSCFDictionary setObject:forKey:] + 293
5 iAd 0x001a0cd8 -[ADBannerController executeBannerViewActionFrom:withClickLocation:] + 422
6 iAd 0x001914d8 -[ADBannerView touchesEnded:withEvent:] + 355
7 UIKit 0x00497ded -[UIWindow _sendTouchesForEvent:] + 567
8 UIKit 0x00478c37 -[UIApplication sendEvent:] + 447
9 UIKit 0x0047df2e _UIApplicationHandleEvent + 7576
10 GraphicsServices 0x03828992 PurpleEventCallback + 1550
11 CoreFoundation 0x03270944 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
12 CoreFoundation 0x031d0cf7 __CFRunLoopDoSource1 + 215
13 CoreFoundation 0x031cdf83 __CFRunLoopRun + 979
14 CoreFoundation 0x031cd840 CFRunLoopRunSpecific + 208
15 CoreFoundation 0x031cd761 CFRunLoopRunInMode + 97
16 GraphicsServices 0x038271c4 GSEventRunModal + 217
17 GraphicsServices 0x03827289 GSEventRun + 115
18 UIKit 0x00481c93 UIApplicationMain + 1160
19 TheApp 0x00002039 main + 169
20 TheApp 0x00001f85 start + 53
21 ??? 0x00000001 0x0 + 1
)
и непосредственно перед сбоем, который происходит, когда я нажимаю на баннер, я получаю кучу ошибок, более 50 из которых связаны с CGContext и все очень похоже на это
<Error>:CGContextRestoreGState: invalid context 0x0
<Error>: CGContextSetBaseCTM: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
<Error>: CGContextRestoreGState: invalid context 0x0
<Error>: CGContextSetBaseCTM: invalid context 0x0
Я ставлю точку останова для всех исключений, и она останавливается на -
int retVal = UIApplicationMain(argc, argv, nil, NSStringFromClass([TheAppAppDelegate class]));
Я искал максимум и минимум и не могу найти ответ на этот вопрос, последнее, этоотлично работает в симуляторе iOS 5.0, но вылетает в симуляторе iOS4.3