gpt4 book ai didi

ios - Swift:找不到接受提供参数的转换重载

转载 作者:可可西里 更新时间:2023-10-31 23:59:29 26 4
gpt4 key购买 nike

如果我将参数设置为 nil,就会出现错误。代码如下:

func addChild(childToAdd: UIViewController, childToRemove: UIViewController) {
if (childToRemove != nil) {
childToRemove.view.removeFromSuperview()
}

var frame = childToAdd.view.frame as CGRect
frame.size.width = view.frame.size.width;
frame.size.height = view.frame.size.height;
childToAdd.view.frame = frame
view.addSubview(childToAdd.view)
}

override func viewDidLoad() {
super.viewDidLoad()

addChild(firstViewController, childToRemove: nil) //could not find an overload for conversion that accepts supplied argument
}

正如你所看到的,我不应该把 nil 放在那里,但我应该放什么。它在 Objective-c 中工作。

最佳答案

您的 childToRemove 参数定义为 UIViewController,它不是可选的因此不能为 nil

尝试:

func addChild(childToAdd: UIViewController, childToRemove: UIViewController?) {

允许你的第二个参数为 nil 值,并且不要忘记你需要在使用它之前解包你的可选(使用 if let 是一个很好的方法):

if let childController = childToRemove {
childController.view.removeFromSuperview()
}

关于ios - Swift:找不到接受提供参数的转换重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24310891/

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