【问题标题】:iOS App Crashing on iPad Pro only: NSUnknownKeyExceptioniOS 应用程序仅在 iPad Pro 上崩溃:NSUnknownKeyException
【发布时间】:2016-03-30 03:05:07
【问题描述】:

我有一个用户报告我的应用程序在他的 iPad Pro 上的启动屏幕上冻结,但在所有其他设备上都可以运行 - iPhone 6 plus 和 iPad Mini 都运行 iOS 9.2。我没有收到此版本的崩溃报告,并且还可以看到其他 iPad 设备运行该应用程序正常,所以我怀疑存在一些本地文件损坏问题。就在我写给用户关于如何卸载重装的信息时,我尝试在 iPad Pro 模拟器上运行该应用程序。繁荣。他是对的。在启动屏幕冻结并引发异常。 (是的,我内心的 Bart Simpson 在黑板上写了 100 倍:在发布前在所有模拟器上进行测试)。

由于未捕获的异常而终止应用程序 'NSUnknownKeyException',原因:'[ setValue:forUndefinedKey:]:这个类不是键值 键视图的编码兼容。'

在 Stackoverflow 的其他地方,此错误为 attributed to a bad outlet。据我所知,那里没有问题:

Viewcontroller having a bad class。作为候选人,我将其排除在外,因为我认为这不会是单设备故障,而且因为我的应用程序是在 Cordova 中构建的,所以它会移交给 webview。

在 main.m 中抛出异常,这是一个由cordova 生成的文件:

#import <UIKit/UIKit.h>

int main(int argc, char* argv[])
{
    @autoreleasepool {
        int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");
        return retVal;
    }
}

我还阅读了有关格式不正确的启动屏幕导致问题的问题,并且由于我为 iPad Pro 添加的启动屏幕图像是自上一个版本以来我的代码中新增的内容,所以这是我的第一个嫌疑人。但是我检查了像素大小和分辨率以及我所有的启动屏幕图像comply to the specs at Apple's developer site.

所以。任何想法仅 iPad Pro 会在发布时立即导致冻结?该应用程序的第一步是查找写入本地存储的文件——如果找不到,则写入一个文件。同样,除非 Pro 处理本地存储的方式有很大不同,否则我认为不可能是这样,因为该过程适用于所有其他 iOS 设备。如果在实际硬件上运行将帮助任何人进行诊断,the app's here in the app store,我很乐意发送下载代码。

【问题讨论】:

  • 你没想到吧?
  • 我做到了。很抱歉没有早点发布它:可能是懊恼让我忘记了我曾为此寻求帮助。在下面回答。

标签: ios xcode cordova ipad


【解决方案1】:

这是一个令人尴尬的简单问题:不知道如何,但主界面框滚动到 MainViewController.xib 仅适用于 ipad。对于 Cordova 应用程序,它应该是空白的,它位于部署信息页面的默认 iPhone 视图中。当我点击 iPad 按钮时,错误的选择就显示出来了。删除它,重新编译,一切都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2011-12-26
    • 2014-09-27
    相关资源
    最近更新 更多