0
    import UIKit

    public class MyButton: UIButton {}

    public extension UIButton {
        var someProperty: Int { 1 } // visible in xcframework

        convenience init(label: String) { // NOT visible in xcframework
            self.init()
        }
    }

我制作 xcframework。这段代码在里面。我将此 xcframework 链接到应用程序并使用它,但 MyButton 类没有方便的 init。XCode 11.3

4

2 回答 2

0

便利初始化中需要公共标志。这将允许 init 在 xcframework 中可见。

尝试这个

import UIKit

public class MyButton: UIButton {}

public extension UIButton {
    var someProperty: Int { 1 } // visible in xcframework

    public convenience init(label: String) { // NOT visible in xcframework
        self.init()
    }
}

但是,您更新的是 UIButton 而不是声明的 MyButton 类。确保这正是您想要做的。

于 2020-01-23T12:51:56.587 回答
0

创建和不创建extensionMyButtonUIButton

public extension MyButton {
    var someProperty: Int {
        return 1
    }

    convenience init(label: String) { 
        self.init()
    }
}

在应用程序中,使用

MyButton(label: "Button_Label")

编辑:

即使您是子类MyButtoninit(label:)在您定义自己的初始化程序之前,子类也将可用。

public class MySuperButton: MyButton {

}

您可以init(label:)在主项目中访问,例如,

MySuperButton(label: "Super Button")
于 2020-01-23T12:48:58.520 回答