gpt4 book ai didi

cocoa-touch - 在扩展中添加便利初始化器并在子类上调用它们

转载 作者:可可西里 更新时间:2023-11-01 01:43:54 24 4
gpt4 key购买 nike

我正尝试在 Swift 中向 UIView 添加扩展方法,如下所示:

extension UIView {
convenience init(superview: UIView) {
self.init(frame: CGRect())
superview.addSubview(self)
}
}

稍后,我可以使用这个新的初始化器,但只能在 UIView 上,我不知道如何在我自己的子类上使用它。

var poView : UIView = UIView(superview: someSuperview) // Just dandy
var myViewSubclass : MyViewSubclass(superview: someSuperview) // No good.

现在,我的 View 子类同时实现了 init(frame: CGRect)init(coder: NSCoder),目前没有别的。

为什么我不能使用便利初始化器?

最佳答案

为了自动继承添加的便利初始化程序,您的 MyViewSubclass 还必须覆盖从 NSObject 继承的普通 init()

class MyViewSubclass {
override init() {
super.init()
}

...
}

关于cocoa-touch - 在扩展中添加便利初始化器并在子类上调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25537145/

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