2012-04-02 4 views
3

Я создаю одну универсальную игру с использованием Cocos2d и Objective-C в iPhone. Почти мой проект завершен. Я получаю эту ошибку во время работы во время работы окна консоли.Ошибка утверждения в iPhone для универсальной игры (Cocos2d + Objective-C), ТОЛЬКО для iPad Simulator

Для симулятора iPhone4.3 и iPhone (Retina), игра работает нормально.

Эта ошибка наступает только тогда, когда я выбираю симулятор «iPad» для выполнения.

Любые идеи? Я действительно смущен этим. Спасибо заранее!

2012-04-02 13:35:55.409 David and Goliath[35671:1803] cocos2d: CCTextureCache: removing unused texture: David_Goliath_Menu-ipad.png 
[Switching to process 35671 thread 0x1803] 
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: WARNING: Image (4096 x 1024) is bigger than the supported 2048 x 2048 
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: Couldn't add image:Day_2048_768_MOUNTAINS_IPad.png in CCTextureCache 
2012-04-02 13:35:56.411 David and Goliath[35671:1803] *** Assertion failure in -[ActionLayer addChild:z:], /Users/sumitghosh/Desktop/David and Goliath Ipad 2/libs/cocos2d/CCNode.m:390 
2012-04-02 13:35:56.412 David and Goliath[35671:1803] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil' 
*** Call stack at first throw: 
(
    0 CoreFoundation      0x018b15a9 __exceptionPreprocess + 185 
    1 libobjc.A.dylib      0x021ff313 objc_exception_throw + 44 
    2 CoreFoundation      0x01869ef8 +[NSException raise:format:arguments:] + 136 
    3 Foundation       0x005c13bb -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 116 
    4 David and Goliath     0x000e3fa8 -[CCNode addChild:z:] + 200 
    5 David and Goliath     0x0002d94b -[ActionLayer setBackground] + 1947 
    6 David and Goliath     0x00038454 -[ActionLayer init] + 2356 
    7 David and Goliath     0x000396ae -[ActionScene init] + 158 
    8 David and Goliath     0x000036f6 -[David_and_GoliathAppDelegate loadScenes] + 598 
    9 David and Goliath     0x00005c7b -[LoadingLayer loadScenes:] + 187 
    10 CoreFoundation      0x01821c7d __invoking___ + 29 
    11 CoreFoundation      0x01821b51 -[NSInvocation invoke] + 145 
    12 Foundation       0x005e8495 -[NSInvocationOperation main] + 51 
    13 Foundation       0x00556b76 -[__NSOperationInternal start] + 747 
    14 Foundation       0x005567ca ____startOperations_block_invoke_2 + 106 
    15 libdispatch_sim.dylib    0x02514289 _dispatch_call_block_and_release + 16 
    16 libdispatch_sim.dylib    0x0251758a _dispatch_worker_thread2 + 252 
    17 libSystem.B.dylib     0x97fda781 _pthread_wqthread + 390 
    18 libSystem.B.dylib     0x97fda5c6 start_wqthread + 30 
) 
terminate called after throwing an instance of 'NSException' 
[Switching to process 35671 thread 0x207] 
Current language: auto; currently objective-c 
kill 
quit 
Program ended with exit code: 0 
+0

Возможно, вы могли прочитать, что такое сообщения об ошибках? «ПРЕДУПРЕЖДЕНИЕ: Изображение (4096 x 1024) больше, чем поддерживаемый 2048 x 2048« –

ответ

1
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: WARNING: Image (4096 x 1024) is bigger than the supported 2048 x 2048 
2012-04-02 13:35:56.410 David and Goliath[35671:1803] cocos2d: Couldn't add image:Day_2048_768_MOUNTAINS_IPad.png in CCTextureCache 
2012-04-02 13:35:56.411 David and Goliath[35671:1803] *** Assertion failure in -[ActionLayer addChild:z:], /Users/sumitghosh/Desktop/David and Goliath Ipad 2/libs/cocos2d/CCNode.m:390 
2012-04-02 13:35:56.412 David and Goliath[35671:1803] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Argument must be non-nil' 

Это говорит вам проблему здесь. Вы пытаетесь загрузить изображение, которое превышает максимальные размеры, поддерживаемые iPad, поэтому cocos2d не может его загрузить. Когда вы пытаетесь добавить его как CCSprite, вы запускаете unhanded NSInternalInconsistencyException (так как узел nil), и это приводит к завершению работы вашего приложения.

Для iPad вам нужно будет использовать меньшее изображение.

+1

Thankyou @davbryn и Nick Bull, оба вы правы .. Я получил решение, используя ваше предложение ... :-) – NSExpression