1

很抱歉,如果它已经被问过,但问题来了:

我最近将我的 SDK 更新为iOS 5 beta。我的应用程序在新模拟器上构建并运行得非常好,但是当我尝试将部署目标更改为较旧的 iOS(4.3)时,应用程序在尝试使用UIActivityIndi​​catorView控件(模拟器和设备)时立即崩溃。我在仅由ViewUIActivityIndi​​catorView组成的非常简单的加载视图中使用UIActivityIndi ​​catorView 。

当我从该视图中删除UIActivityIndi​​catorView控件时,该视图工作正常,应用程序在加载其他视图(带有活动指示器和图像)时崩溃。所以,长话短说:应用程序在 iOS 5 环境中运行良好,但图像和活动指示器在旧 iOS 版本上运行时会崩溃。有任何想法吗?

提前致谢!

编辑

我添加一些代码只是为了向你们展示我是如何使用视图的。这真的不多,而且LoadingViewController本身绝对没有自定义代码(所有控件都在 nib 中)。

if(!self.loadingScreen){
    self.loadingScreen = [[LoadingViewController alloc] initWithNibName:@"LoadingViewController" bundle:nil];
}
[self.view addSubview:loadingScreen.view];

异常消息实际上并没有多说,但是你去:

0   CoreFoundation                      0x017bd5a9 __exceptionPreprocess + 185
1   libobjc.A.dylib                     0x01911313 objc_exception_throw + 44
2   CoreFoundation                      0x017bf0bb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3   CoreFoundation                      0x0172e966 ___forwarding___ + 966
4   CoreFoundation                      0x0172e522 _CF_forwarding_prep_0 + 50
5   UIKit                               0x00f8e9fd UINibDecoderDecodeObjectForValue + 2592
6   UIKit                               0x00f8f6ac -[UINibDecoder decodeObjectForKey:] + 398
7   UIKit                               0x00d75db0 -[UIImageView initWithCoder:] + 97
4

3 回答 3

2

我遇到了同样的问题,刚刚找到了解决方案。我的 UIActivityIndi​​cator 已添加到 xib 文件中。我已从 xib 中删除它并通过代码创建它(activityIndi​​cator = [[UIActivityIndi​​catorView alloc] initWithActivityIndi​​catorStyle:...)。

现在一切正常,它有效!

我希望这会对你有所帮助。

于 2011-08-11T10:09:53.017 回答
1

按照 smith324 的建议,我开始浏览 Apple 开发论坛,以了解我是否做错了什么,或者 SDK 中是否存在错误。事实证明,就像我的情况一样,最新版本中有一个令人讨厌的错误导致 UIImages、UIActivityIndi​​cators 等崩溃。好消息是,实际上有一种解决方法,您可以在这里找到它:https ://devforums.apple.com/message/507796#507796

感谢大家的帮助!

编辑:

如果您无法访问该链接,这是建议的答案:

@implementation UIImage (initWithCoder)

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

@end
于 2011-08-11T15:22:57.933 回答
1

我无法打开 URL https://devforums.apple.com/message/507796#507796 .... 但我认为您可以为 UIImage 类创建一个类别,如下所示:

@implementation UIImage (Coder)

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

@end
于 2011-09-05T14:37:36.673 回答