Приложение вылетает на i386, работает на x86_64 - PullRequest
4 голосов
/ 19 июня 2010

Сегодня я попытался переключить архитектуры в своем проекте XCode, потому что я собирался использовать низкоуровневый материал QuickTime, который еще не перенесен на 64-битную версию.Когда я скомпилировал ранее на x86_64, мое приложение работало нормально.Затем я переключил арку на i386 и boom, мое приложение продолжает падать при запуске.

Странно то, что трек стека не имеет ничего общего с моим собственным кодом.

#0  0x9929ebf1 in __CFBasicHashDeallocate
#1  0x99286ea1 in _CFRelease
#2  0x992b397d in _CFAutoreleasePoolPop
#3  0x917d1dda in NSPopAutoreleasePool
#4  0x92b67bc9 in loadNib
#5  0x92b66f99 in +[NSBundle(NSNibLoading) _loadNibFile:nameTable:withZone:ownerBundle:]
#6  0x92b66eaa in +[NSBundle(NSNibLoading) loadNibFile:externalNameTable:withZone:]
#7  0x92b66df5 in +[NSBundle(NSNibLoading) loadNibNamed:owner:]
#8  0x92b63bf9 in NSApplicationMain
#9  0x000023c8 in main at main.m:13

Любойидеи?

1 Ответ

3 голосов
/ 19 июня 2010

Я предполагаю, что вы создали объекты в кончике, которые не безопасны в 32-битном режиме.Вы можете, например, делать предположения о размере некоторого объекта, который не соответствует действительности, например, использовать double вместо CGFloat или int64_t вместо NSInteger.

...