gpt4 book ai didi

swift - 为什么我在此代码中收到 "missing argument for parameter"错误?

转载 作者:行者123 更新时间:2023-11-30 14:00:57 25 4
gpt4 key购买 nike

我在 Swift 中遇到错误:“调用中缺少参数‘bundle’的参数”

Class Radio : UIViewController {
let url = NSURL(string: "myurl")

@IBAction func newButtonPressed(sender: AnyObject){
var streamer = Radio.alloc().init(url!)
}
}

我不太明白这个错误,所以如果有人可以帮忙。

最佳答案

您正在尝试使用 url 参数初始化您的 Radio 类。

但是这个类没有 init(url: NSURL) (或者至少它没有在你的问题中显示),所以你不能。

您需要创建一个 init(url: NSURL) ,并且在这个 init 中您还必须调用 UIViewController 的 super init (即使您不使用它,如我的示例中所示),因为您的 Radio 类继承自它。

这就是您收到此错误的原因:

Missing argument for parameter 'bundle' in call

因为 Xcode 建议对该类使用 init(nibName: String?, bundle: NSBundle?) 初始化程序,因为它是唯一可用的。

因此,以您的代码示例为基础,您可以执行以下操作以使其正常工作:

class Radio : UIViewController {

var url = NSURL(string: "someDefaultURL")

init(url: NSURL) {
self.url = url
super.init(nibName: nil, bundle: nil)
}

required init?(coder aDecoder: NSCoder) {
fatalError("not implemented")
}

@IBAction func newButtonPressed(sender: AnyObject) {
let newURL = NSURL(string: "myurl")
let streamer = Radio(url: newURL!)
// do something with `streamer`
}
}

关于swift - 为什么我在此代码中收到 "missing argument for parameter"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33002288/

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