【发布时间】: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