Я перенесла свой проект с iOS 7 на iOS 8, поддерживая поддержку iOS 7. Поскольку я переделал всю графику, я выбросил старую раскадровку и создал новую, используя новые универсальные раскадровки и классы размеров.Xcode 6 Универсальная раскадровка NSKeyedUnarchiver initForReadingWithData error
Все отлично работает для IOS 8 iPhone/IPad и IOS 7 iPhone, но на прошивке 7 IPad я буду продолжать получать следующее сообщение об ошибке:
[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver?
приложения даже не дохожу до application:didFinishLaunchingWithOptions
и я знаю, проблема - раскадровка, потому что, если я создаю пустую, приложение начнется нормально.
Что мне не хватает? Мне нужна специальная раскадровка только для ipad для поддержки iOS 7? или есть другой способ?
EDIT:
в течение некоторого теста, я нашел, что метод, который кидать исключение составляет:
[storybord instantiateInitialViewController];
или
[storyboard instantiateViewControllerWithIdentifier:@"id"];
я уже запустил приложение с пустой раскадровки и загрузили мою раскадровку в делегат приложения. Раскадровка не ноль, но приложение рушится на этот метод. Загрузка контроллера просмотра, который не является исходным, не изменяет результат.
Вы удалили исходное приложение с iOS7 ipad/simulator, а затем попытались запустить? Я обнаружил, что иногда старые версии могут мешать новым, особенно на симуляторе, и если вы внесли большие изменения. Также выключите симулятор и перезапустите, если это то, что вы используете. –
Да, я очистил эмулятор от старой версии и перезапустил его, но ничего не добавил – whtman
У этого человека, похоже, есть обратная проблема: http: //stackoverflow.com/questions/28565010/app-crashes-at-run -befor-reach-my-code-xcode6-1-universal-app-objectiv-c-nske. Однако я не согласен с их ответом, поскольку у меня есть приложение, использующее iOS7 и 8 с ограничениями по размеру, и оно отлично работает на iphone и ipad на обеих версиях iOS. –