gpt4 book ai didi

ios - Swift - 正确使用 AnyObject

转载 作者:行者123 更新时间:2023-11-28 07:01:59 24 4
gpt4 key购买 nike

我是 swift 的新手。我正在使用 storyboard 并根据登录信息,我正在更改 UIViewController 以加载。以下是片段。

class func viewControllerWithName(name: String) -> UIViewController?
{
let storyboard = mainStoryboard()
let viewController: AnyObject! = storyboard.instantiateViewControllerWithIdentifier(name)
return viewController as? UIViewController
}

func setUpController {
let viewController: AnyObject!
if self.user() == "admin" {
viewController:AdminViewController = self.viewControllerWithName("admin") !as! AdminViewController
} else {
viewController:UserViewController = self.viewControllerWithName("user") !as! UserViewController
}
self.addChildViewController(viewController)
viewController.view.frame = container.frame
self.view.addSubview(viewController.view)
viewController.didMoveToParentViewController(self)
}

我尝试了很多方法,但是,我无法对 viewController 进行类型转换。我得到错误,说

Cannot invoke 'addChildViewController' with an argument list of type '(AnyObject!)'

实现此目标的正确格式是什么?

最佳答案

当您知道它将成为 View Controller 时,为什么还要将其声明为 AnyObject?将其声明为 UIViewController,您提到的错误应该会消失。

您不需要在 if-else 部分执行 viewController:AdminViewController。无论如何,您都在强制对 viewControllerWithName 方法的输出进行类型转换。

关于ios - Swift - 正确使用 AnyObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31828579/

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