我面临创建类的静态函数的问题
我正在开发一个需要自定义输入视图的应用程序。我的想法是将此函数作为入门,以便需要此自定义输入视图的任何类型的UIKit组件都可以调用此函数
这是我的代码
class Helper {
static func getCustomKeyboard() -> CustomInputView {
let inputView = UINib(nibName: "CustomInputView", bundle: nil).instantiate(withOwner: self, options: nil).first as! CustomInputView
return inputView
}
}
当我在另一个UIViewController,UIView或UITableViewCell中调用此函数时,将出现SIGBART错误。
但是,如果我直接从自己的VC或UIView中调用以下代码,则不会出现错误。
let inputView = UINib(nibName: "CustomInputView", bundle: nil).instantiate(withOwner: self, options: nil).first as! CustomInputView
我现在正在做的是创建每个UIKit组件扩展。这样,错误也不会出来。
所以我的问题是,有什么办法可以创建一个仅一个的辅助函数,并且可以在没有SIGBART错误的情况下从任何地方调用它?
谢谢
答案 0 :(得分:1)
我认为问题可能在于您将所有者的“自我”传递给“实例化”方法。在静态方法中,“自身”是Helper类本身。 尝试将“ nil”作为所有者传递,或者如果您希望使用自定义键盘的组件作为所有者,则将其作为“ getCustomKeyboard”参数传递。