繁体   English   中英

XCode 4导致iOS4应用顶部崩溃,而XCode 3没有

[英]XCode 4 causing iOS4 app top crash, where XCode 3 didn't

正在为我的公司开发iPhone应用程序。 最近升级到XCode 4(但在单独的文件夹中保留了XCode 3的安装)。

该应用程序如果在XCode 3下编译并运行,则可以稳定运行并且不会崩溃。 如果编译并在XCode 4下运行,它将运行并打开到About屏幕,并允许我通过选项卡栏导航到其他页面之一(记笔记页面)。 但是,如果我单击另一个选项卡(一个仅包含MKMapView的页面),则每次都会崩溃。

唯一的例外是运行iOS 5的iPod Touch。运行良好,因此问题似乎出在iOS4上的XCode 4(我目前正在测试的是4.3.5)。

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

如果您使用的是Xcode 4.2和iOS 5 SDK beta 5或更高版本,则可能会遇到SDK中的错误。 请参阅对此问题的公认答案。

有解决方法。 这是最简单的方法,最早由Kreuters建议:

@implementation UIImage (initWithCoder)

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

@end

如果您可以在Xcode 4.2和iOS 5 SDK beta 7中重现该错误,则应提交一个错误报告

从崩溃日志看来,UIImage初始化会导致崩溃。 如果您有任何[UIImage initWithCoder:]代码,请尝试对其进行注释,然后查看是否可行。 如果确实存在问题,请检查是否仍将图像添加到您的项目中,和/或重新导入图像。

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

除此之外,问题似乎还在于苹果存储来自xib文件的信息的方式,因为在加载UIViewController时会调用[UIImage initWithCoder:]

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

我不知道这是否有帮助,但请尝试查看在创建/检索xib的方式中发生了什么变化,也许是一项与您所做的工作相冲突的新功能。 或检查您正在检索的任何图像。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM