【问题标题】:AppDelegate valueForUndefinedKeyAppDelegate valueForUndefinedKey
【发布时间】:2018-04-02 11:08:43
【问题描述】:

我正在快速制作一个应用程序,但我遇到了一些问题。我正在尝试运行我的应用程序,但每次都会出错。

这是完整的错误: *** 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合键 currentUnityController 的键值编码。”

在 AppDelegate 中,我使用这样的服务:

@UIApplicationMain
final class AppDelegate: AppwiseCore.AppDelegate<Config> {
override var services: [ApplicationService] {
    return [
        UnityApplicationService(),
        FabricApplicationService(),
        KeyboardManagerApplicationService()
    ]
}
}

然后我这样调用 UnityAppcontroller:

var window: UIWindow?

var application: UIApplication?
@objc var currentUnityController: UnityAppController!
var isUnityRunning = false

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    self.application = application
    unity_init(CommandLine.argc, CommandLine.unsafeArgv)
    currentUnityController = UnityAppController()
    currentUnityController.application(application, didFinishLaunchingWithOptions: launchOptions)

    startUnity()
    return true
}

最后这就是我访问应用控制器的方式。

NS_INLINE UnityAppController* GetAppController()
{
NSObject<UIApplicationDelegate>* delegate = [UIApplication sharedApplication].delegate;
UnityAppController* currentUnityController = (UnityAppController*)[delegate valueForKey: @"currentUnityController"];
return currentUnityController;

}

有帮助吗?

【问题讨论】:

  • 为什么不直接将delegate 转换为AppDelegate,然后使用它的属性currentUnityController

标签: ios swift service delegates appdelegate


【解决方案1】:

如果您的 nib(xib 文件)中有一个控件链接到视图控制器中的属性 (IBOutlet) 或方法 (IBAction),并且您已删除或重命名该属性或方法,则运行时可以'找不到它,因为它已被重命名并因此崩溃。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-25
    • 2017-05-10
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    相关资源
    最近更新 更多