应用程序在i386上崩溃,适用于x86_64

时间:2010-06-19 13:34:14

标签: objective-c cocoa xcode x86-64 i386

我今天尝试在我的Xcode项目中切换架构,因为我即将使用尚未移植到64位的低级QuickTime东西。当我在x86_64之前编译时,我的应用运行得很好。然后我将拱门切换到i386并且繁荣,我的应用程序在启动时不断崩溃。

奇怪的是,堆栈tracke与我自己的代码无关。

#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 个答案:

答案 0 :(得分:3)

我的猜测是你在nib中创建了32位模式下不安全的对象。例如,您可能会假设某些对象的大小不正确,例如,使用double而不是CGFloat或int64_t而不是NSInteger。