swiftlang/swift
在 GitHub 查看[SR-7301] Bad fixit suggested for protocol extension implementation for inherited objc protocol
Open
#49,849 创建于 2018年3月28日
bugcompilergood first issue
描述
| Previous ID | SR-7301 |
| Radar | None |
| Original Reporter | kdawgwilk (JIRA User) |
| Type | Bug |
Attachment: Download
Xcode 9.2
Swift 4
macOS 10.13.3
| Votes | 0 |
| Component/s | Compiler |
| Labels | Bug, StarterBug |
| Assignee | None |
| Priority | Medium |
md5: f483fe309b1876278257725a1dc2b1b5
relates to:
- SR-3349 @objc methods cannot be contained in protocol extensions
Issue Description:
I have the following code that has a compiler error
@objc protocol IntroAnimationController: UIViewControllerAnimatedTransitioning {
func frame(for view: UIView, fromView: UIView) -> CGRect
func animations(fromView: UIView, toView: UIView) -> () -> Void
}
extension IntroAnimationController {
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 0.20
}
}
The error says:

and includes a fixit that that turns my code into this:
extension IntroAnimationController {
@objc(transitionDuration:) func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
return 0.20
}
}
And then gives me these two wonderful new errors:

None of the fixits are helpful and the error message does not give me any clue why I can't do this