我正在尝试在 NSLayoutAnchor 上创建一个扩展方法来接受乘数。我得到一个奇怪的 Swift 编译错误(Swift 3,XCode 8.2.1),不是在扩展文件中,而是在模块的相应 .h 文件(该文件由编译器自动生成)中:
@interface NSLayoutAnchor (SWIFT_EXTENSION(MYMODULENAME))
- (NSLayoutConstraint * _Nonnull)constraintTo:(NSLayoutAnchor</* AnchorType */> * _Nonnull)anchor multiplier:(CGFloat)m;
@end
错误指向/* AnchorType */
并说:“预期类型”。嗯,这是有道理的,因为/* AnchorType */
它不是类型而是注释。但是我AnchorType
在方法签名中使用了类型参数。
扩展源码如下:
extension NSLayoutAnchor {
open func constraint(to anchor: NSLayoutAnchor<AnchorType>, multiplier m: CGFloat) -> NSLayoutConstraint {
// ...
}
}