呼叫中缺少参数标签'编码器:'

时间:2016-08-05 13:05:18

标签: ios swift swift2 sidebar

尝试在slideMenuController中设置AppDelegate变量时,会返回持久编译器错误。

window = UIWindow(frame: UIScreen.mainScreen().bounds)

这是代码。

 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
      window = UIWindow(frame: UIScreen.mainScreen().bounds)
      let containerViewController = ContainerViewController()
      window!.rootViewController = containerViewController                   
      window!.makeKeyAndVisible()
  }

标题中说明了错误消息。

1 个答案:

答案 0 :(得分:1)

你在说:

  let containerViewController = ContainerViewController()

所以你在没有参数的情况下调用初始化程序,即init()。但这不是您通常实例化视图控制器的方式。视图控制器类可能有一个没有参数的初始化程序,但由于你对ContainerViewController所做的更改,它没有该初始化程序。

视图控制器的指定初始值设定项为init(nibName:bundle:)。所以你可能想说这样的话:

  let containerViewController = ContainerViewController(nibName:nil, bundle:nil)

或者,如果要指定nib名称,请继续并指定它而不是nil。但至少,如果你提出我的建议,你的代码应该编译,然后你可以继续进行。

或者,如果您已为ContainerViewController定义了一些其他初始化程序,请调用 初始化程序。 (你还没有展示如何定义ContainerViewController,所以不可能说;你必须要看,因为你有代码而我们没有。)但是你不能在没有参数的情况下调用初始化程序,因为它没有存在。