【问题标题】:App Crashes after launch screen启动屏幕后应用程序崩溃
【发布时间】:2016-03-23 16:26:09
【问题描述】:

我有一个最初在目标 c 上运行的大项目,现在我已经使用 xcode 7.3 转换为 swift 2.2 并优化了代码。但是应用程序崩溃说 EXC_BAD_INSTRUCTION.. 我知道一定有问题.. 这是正在生成的行

 var dict : [NSObject : AnyObject] = userDefaults.objectForKey(mdmiosagent_Constants.MANAGED_APP_CONFIGURATION) as! [NSObject : AnyObject]

这里也显示了同样的东西

 0x10a553f09 <+171>: movq   0xd692d8(%rip), %rbx      ; (void *)0x000000010c04ad70: objc_release

有没有人知道什么特别有问题?如果要提供有关代码的更多信息,请告诉我。

【问题讨论】:

    标签: ios objective-c swift


    【解决方案1】:

    我认为这条线有几处可能有问题:

    userDefaults.objectForKey(mdmiosagent_Constants.MANAGED_APP_CONFIGURATION) as! [NSObject : AnyObject]

    1. 您的userDefaults 实际上不包含mdmiosagent_Constants.MANAGED_APP_CONFIGURATION 的任何值
    2. 您正在使用as! 强制转换,如果您返回的内容不是[NSObject: AnyObject],这也可能会导致问题

    因此您可以尝试检查您的userDefaults 是否实际上包含mdmiosagent_Constants.MANAGED_APP_CONFIGURATION 的值。

    如果有,那么内容是什么?尽量不要一开始就强制施放它,看看它是什么。

    希望对你有所帮助。

    【讨论】:

    • 如果我强制转换它,错误就像 AnyObject?不能转换为类型 [NSObject : AnyObject].. 所以我应该将 dict 声明为 [Anyobject] 吗?
    • 好的,你可以设置一个断点,看看你的 userDefaults 包含什么吗?
    • 是的,尝试——只是为了开始——将你的dict声明为AnyObject?(不是数组,只是AnyObject?),这样你就可以设置一个断点并查看内容是什么
    • 标识符 = kCFPreferencesCurrentApplication 和容器 = NULL
    • 好吧,我还没有修改目标 c 中的这部分代码 .. 它工作正常
    猜你喜欢
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2019-08-16
    • 1970-01-01
    • 2018-01-26
    • 2016-12-18
    • 1970-01-01
    相关资源
    最近更新 更多