2011-08-29 87 views
0

正在为我公司的iPhone应用程序工作。最近升级到XCode 4(但在一个单独的文件夹中保存了XCode 3的安装)。XCode 4导致iOS4应用程序崩溃,其中XCode 3没有

应用程序(如果在XCode 3下编译并运行)运行稳定并且不会崩溃。 如果编译并在XCode 4下运行,将运行,打开一个关于屏幕,并允许我通过标签栏导航到其他页面之一(记录笔记页面)。但是如果我点击另一个选项卡(一个几乎不包含任何内容的页面),它每次都会崩溃。

例外是我的iPod Touch,运行iOS 5.运行良好,所以看起来问题是iOS4上的XCode 4(4.3.5是我目前测试的)。

崩溃日志是在这里:http://pastebin.com/p0sXqbSZ

+2

日志看起来很清楚。 “发送给实例的无法识别的选择器”。你为什么认为有更大的问题? – Megasaur

+0

因为没有代码已经改变。除了我使用的XCode版本外,没有任何变化。所有iOS4设备都可以在XCode 3下正常运行此项目。 在一个版本的XCode中编译时,在同一OS上运行的相同选择器如何运行,但在另一个版本中是无效的? –

+1

好吧,我有一些奇怪的问题,通过先做一个干净的解决Xcode 4。无论如何,UIImage不符合NSCoding标准。还有错误。所以你至少可以发布代码,最终抛出这个。 – Megasaur

回答

1

如果您使用Xcode 4.2和iOS 5 SDK beta 5或更高版本,那么您可能会遇到SDK中的错误。请参阅this question的接受答案。

有解决方法。这里有一个最简单的,首先由Kreuters建议:

@implementation UIImage (initWithCoder) 

- (id)initWithCoder:(NSCoder *)aDecoder 
{ 
    return nil; 
} 

@end 

如果你能重现错误在Xcode 4.2和iOS 5测试版SDK 7,你应该file a bug report

+1

干杯艾略特。不是一个完整的解决方案,而是一种解决方法,至少我知道它是在苹果的最后,而不是我的。 –

+0

您是否知道iOS 5.1 SDK中是否需要此解决方法? – Philosophistry

0

从崩溃日志这似乎是一个UIImage initalization导致崩溃。如果你有任何[UIImage initWithCoder:]的代码,然后尝试评论它,然后看看是否有效。如果问题确实存在,请检查图像是否仍添加到您的项目中,和/或重新导入图像。

+0

在任何时候,我都不会使用initWithCoder对图像进行编码/解码。 –

0

您是否尝试过在“编辑器”下的“现代化项目”?

7 UIKit 0x31f98df3 -[UIImageView initWithCoder:] + 66 
... 
20 UIKit 0x3203b489 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 92 
21 UIKit 0x31f90cbd -[UIViewController _loadViewFromNibNamed:bundle:] + 36 

我不知道这一点:

除此之外,问题加载的UIViewController时,似乎在路上苹果专卖店撒谎从厦门国际银行文件中的信息,因为[UIImage initWithCoder:]被称为帮助,但试着去看看xibs被创建/检索的方式发生了什么变化,或许是一个与你所做的事情相冲突的新特性。或者检查您正在检索的任何图像。

+0

“编辑”菜单中没有“Modernize Project”。问题清单中也没有现代化需要解决的问题。 查看.xib文件,仅引用1个图像。删除该图像后,问题依然存在。 –