gpt4 book ai didi

ios - 无法将类型 'Class' 的值分配给类型 '[Class]'

转载 作者:搜寻专家 更新时间:2023-11-01 05:38:34 24 4
gpt4 key购买 nike

我正在设置我的第一个 Swift 项目,目前我遇到了这个错误:

Cannot assign value of type 'UIViewController' to type '[UIViewController]'

我暗暗怀疑这与所有这些 ? ! 业务有关...

我以为我已经弄清楚了 ? 并且对 ! 有了足够的工作理解才能开始,但是当我开始研究应用程序委托(delegate)初始化时,我对他们使用 ! 的方式感到困惑。这是我目前在 didFinishLaunchingWithOptions 方法中得到的:

    self.window = UIWindow(frame: UIScreen.mainScreen().bounds);
self.navCtrlr = UINavigationController();
self.rootVC = RootViewController(nibName: nil, bundle: nil);
self.navCtrlr!.viewControllers = self.rootVC! as UIViewController; ****
self.window!.rootViewController = self.rootVC;
self.window?.makeKeyAndVisible();

第 4 行(带有 ****)是有问题的。最初我使用 self.rootVC 作为 UIViewController 而没有 !,但是我收到一个错误要求我添加 !,所以我做了.现在我得到了我现在遇到的错误。这是我的类属性的样子:

var window: UIWindow?;
var navCtrlr = UINavigationController?();

var rootVC: RootViewController?;

UINavigationController 实例化也让我感到困惑,说实话......我们使用 ? 的原因是因为我们希望变量能够包含 nil,而不必定义它在我们创建对象之前,对吗?那么为什么 () 最后呢?但我离题了。

'UIViewController''[UIViewController]' 有什么区别,我该怎么做才能消除这个错误?

最佳答案

尝试

self.navCtrlr!.viewControllers = [self.rootVC! as UIViewController];

[UIViewController] 是 swift 中的数组

此外,我认为 rootViewController 是 navigationController,所以

  self.window = UIWindow(frame: UIScreen.mainScreen().bounds);
self.rootVC = RootViewController(nibName: "youNibName", bundle: nil);
self.navCtrlr = UINavigationController(rootViewController: self.rootVC!);
self.window!.rootViewController = self.navCtrlr;
self.window?.makeKeyAndVisible();

关于ios - 无法将类型 'Class' 的值分配给类型 '[Class]',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33818442/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com