我为触觉创建了一个小便利类,我尝试在我的Objc代码中引用该类:
self.haptics = [[Haptics new] initWithStyle:UIImpactFeedbackStyleLight];
@objc final class Haptics: NSObject {
private var feedbackGenerator: UIImpactFeedbackGenerator? = nil
init?(style: UIImpactFeedbackStyle) {
guard UserFeedback.soundsAndVibrationsEnabled() else { return nil }
self.feedbackGenerator = UIImpactFeedbackGenerator(style: style)
}
func prepare() {
feedbackGenerator?.prepare()
}
func hit() {
feedbackGenerator?.impactOccurred()
}
}
我在Haptics类声明中遇到了崩溃:
致命错误:对“MyProject.Haptics”类使用未实现的初始化程序'init()'
不太清楚我在这里做错了什么
答案 0 :(得分:2)
[Haptics new]
是
的缩写[[Haptics alloc] init]
因此调用没有参数的init(),但它不存在。
做
self.haptics = [[Haptics alloc] initWithStyle:UIImpactFeedbackStyleLight];