【发布时间】:2023-04-08 04:01:01
【问题描述】:
我已将我的项目从 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"];
我已经启动了带有空故事板的应用程序,并将我的故事板加载到应用程序委托中。故事板不是零,但应用程序在该方法上崩溃。加载不是初始视图控制器的视图控制器不会改变结果。
【问题讨论】:
-
你是不是把iOS7 ipad/simulator中的原app删掉了再试运行?我发现有时旧版本可能会妨碍新版本,尤其是在模拟器上并且如果您进行了重大更改。如果您正在使用,请关闭模拟器并重新启动。
-
是的,我已经从旧版本中清除了模拟器并重新启动它,但没有任何结果
-
这个人似乎和你有相反的问题:stackoverflow.com/questions/28565010/…。但是我不确定我是否同意他们的回答,因为我有一个使用 iOS7 和 8 的应用程序,有大小限制,并且在两个 iOS 版本的 iphone 和 ipad 上都可以正常工作。
-
我看到了这个问题,但我想要一个独特的故事板。我检查了另一个项目(ios 7/8,独特的故事板)并且工作正常,所以我的故事板一定有一些错误,我会尝试找出它。
-
尽管我有,但您是否在常规/常规情节提要视图中编写了 iPad 版本,或者您使用的是任何/任何视图。如果不使用 Any/Any,则可能是 iPad iOS7 无法加载 UI,因为 iOS7 iPad 中对尺寸类的支持有限。
标签: ios ipad ios7 universal-storyboard