2010-11-02 47 views
1

我已经阅读了很多关于弱链接的问题和解答,在执行代码之前检查一个类是否有效。我的应用程序已基本完成并准备就绪(至少我认为它是,我的第一个应用程序为商店),但我需要解决这个问题,所以我的应用程序本身运行在iPad上。有人能帮我弄清楚为什么我的应用在iPad上运行时崩溃。罪魁祸首是不受支持的框架 - iAd

我收到的错误是以下内容: *终止应用程序由于未捕获的异常 'NSInvalidUnarchiveOperationException',原因: '* - [NSKeyedUnarchiver decodeObjectForKey:]:不能解码类的对象(ADBannerView)'

我对你的问题亲的是,我在我的课程标题中设置了一些IBOutlet属性。例如; @property(nonatomic,retain)IBOutlet ADBannerView * tollBanner;

此属性是否导致在iPad上运行应用程序时出现问题?如果ADBannerView类不是nil,我在viewDidLoad方法中添加了一些条件。同样在我的dealloc方法中,我释放了这些ADBannerView对象。

我希望对此和TIA有任何帮助。

T

回答

3

有可能创建的对象是从nib/xib派生的。

如果你的笔尖/厦门国际银行要求其提供一些平台/操作系统版本的自定义类,则必须:

1)添加它编程

- 或 -

2)创建多个笔尖(针对每个本地化),然后加载特定于当前运行时间的笔尖。在大多数情况下,前者听起来更简单。

(PS:调用堆栈将帮助)

+0

贾斯汀感谢您的提示。看起来我会重做,并以编程方式添加它。 – tg2007 2010-11-03 01:09:08

1

按照iOS documentationADBannerView

可提供的iOS 4.0及更高版本。

iPad的iOS版本目前是3.2 *,因此您将无法在iPad上使用此课程。

* 4.2最近播种给开发人员(如果媒体报道是准确的),但是无论硬件如何,您的应用程序都将在运行iOS 4.0之前的iDevices上崩溃。

+0

fbrereto是的我明白<4.0 iAd框架不支持。我在我的实现中有弱链接和设置条件,但我的问题是因为我在头文件中引用的引用而导致崩溃。 – tg2007 2010-11-03 01:08:37

+0

@ tg2007:问题在于您试图将包含“ADBannerView”的内容解压缩为归档的一部分。当unarchival代码遍历这个引用时,它会尝试对不支持的类进行实例化,并且你正在崩溃。我相信在'Availability.h'中有宏,你可以用它来#如果不是有问题的代码。 – fbrereto 2010-11-03 17:44:20

+0

感谢您的解释。说得通。 – tg2007 2010-11-03 22:05:11

相关问题