0

我已将我的项目从 iOS 7 迁移到 iOS 8,以保持对 iOS 7 的支持。因为我重做了所有的图形,所以我扔掉了旧的故事板,并使用新的通用故事板和大小类创建了一个新的。

对于 iOS 8 iPhone/iPad 和 iOS 7 iPhone,一切正常,但在 iOS 7 iPad 上,我会不断收到以下错误:

[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver?

该应用程序甚至没有到达application:didFinishLaunchingWithOptions,我知道问题在于情节提要,因为如果我创建一个空的应用程序启动正常。

我错过了什么?我是否需要一个临时故事板仅用于 ipad 以支持 iOS 7?还是有另一种方法?

编辑:

在一些测试中,我发现抛出异常的方法是:

[storybord instantiateInitialViewController];

或者

[storyboard instantiateViewControllerWithIdentifier:@"id"];

我已经用一个空的故事板启动了应用程序,并将我的故事板加载到应用程序委托中。故事板不是零,但应用程序在该方法上崩溃。加载不是初始视图控制器的视图控制器不会改变结果。

4

2 回答 2

1

我遇到了同样的问题,并将其缩小到我为我的紧凑/任何尺寸类安装的集合视图,但为我的任何/任何尺寸类卸载。当它们所属的集合视图在活动大小类中被卸载时,iOS 7 似乎在原型单元格方面存在问题。在 iOS 8 上运行可以正常运行,因此如果您只支持 iOS 8 及更高版本,则不会遇到此问题。

原型细胞活动(不工作): 带有原型单元的已卸载集合视图

移除原型单元(作品): 没有原型单元的已卸载集合视图

为了解决这个问题,我将创建一个 xib,它将以编程方式为 iPad 加载,并保留故事板以在 iPhone 上使用。由于有问题的视图不需要 iPad 上的 Collection View,xib 应该非常简单,但从维护的角度来看,这样做仍然很糟糕。

于 2015-03-19T00:07:54.900 回答
0

我终于能够解决它,我发现 viewController 中带有插座的元素只有 iphone 尺寸类(我忘了将它添加到常规\常规尺寸类),这导致了错误。

将它添加到常规\常规尺寸类解决了这个问题

于 2015-03-04T09:19:24.547 回答