Сбои iPad, которые не происходят на iPhone или iPod Touch

Кто-нибудь сталкивался с трудностями в получении надежного приложения для iPhone, работающего на iPad? У меня сложилось впечатление, что приложения для iPhone будут работать без проблем на iPad. Мы испытываем сбои (не прерывистые - в том же месте, в одно и то же время), которых мы никогда не получали на iPhone или iPod Touch. Я стал подозревать, что сбои связаны с управлением памятью, но даже если так, почему только на iPad?

    2010-05-17 10:19:06.474 ASSIST[82:207] *** Terminating app due to uncaught 
exception 'NSUnknownKeyException', reason: '[<UISectionRowData 
0x6041480> valueForUndefinedKey:]: this class is not key value coding-compliant 
for the key deliveryDate.'
    2010-05-17 10:19:06.481 ASSIST[82:207] Stack: (
    852041337,
    861292157,
    852040861,
    850755255,
    850750995,
    850758945,
    81279,
    123007,
    126693,
    149141,
    851599725,
    827486573,
    827486477,
    827486431,
    827485745,
    827487359,
    827454123,
    851903137,
    851590065,
    851588321,
    819339483,
    819339655,
    827151561,
    827144691,
    9461,
    9324
    )
    terminate called after throwing an instance of 'NSException'
Program received signal:  “SIGABRT”.

2 ответа

Решение

Похоже, проблема с памятью. Возможно, вам следует использовать NSZombie, чтобы проверить, что не так, и использовать опцию "Построить и проанализировать", чтобы статически проверять любые проблемы с управлением памятью.

О том, почему iPad дает сбой, а iPhone нет - помните, что iPad работает на iPhoneOS 3.2, а iPhone все еще работает на 3.1. Внутренние органы могут быть изменены очень много. Конечно, в "режиме симуляции iPhone" на iPad работает код 3.2.

Следовательно, возможно, у вас есть ошибка управления памятью в оригинальном программном обеспечении. Объект получил -retainредактировалось внутри в старой прошивке 3.1 (например, добавлено в NSArray). Но код Apple, возможно, изменился так, что -retain больше не нужен и выставлен баг.

[ valueForUndefinedKey:]: this class is not key value coding-compliant for the key deliveryDate подразумевает возможную константу, которая не относится к iPad. Попробуйте использовать NSLog() отследить глючный код.

Другие вопросы по тегам