[英]Extension for UIKit protocol in Swift
我想在扩展中添加默认实现:
import UIKit
protocol Animator: UIViewControllerAnimatedTransitioning {}
extension Animator {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 0.33
}
}
但是我在编译时有一个奇怪的错误:
命令由于信号失败:分段错误:11
和非常长的堆栈转储。
我想在扩展中添加默认实现
你不能 Objective-C无法看到Swift协议扩展,因此永远不会调用您的“默认实现”。
恭喜,您使编译器崩溃了。 (这就是段错误11的意思。)
您的Animator类需要从NSObject派生,以便它可以符合UIViewControllerAnimatedTransitioning协议。
这有效:
import UIKit
class Animator: NSObject {
}
extension Animator: UIViewControllerAnimatedTransitioning {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 0.33
}
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.