我有一个设置为部署在iOS 8上的框架目标。在上述框架中有一个扩展,如下所示,它被包装在iOS 9检查中。
@available(iOS 9.0, *)
extension NSLayoutAnchor {
open func constrainEqual(_ anchor: NSLayoutAnchor, constant: CGFloat = 0) {
constraint(equalTo: anchor, constant: constant).isActive = true
}
}当我将这个框架导入到一个只有Swift代码并设置为部署到iOS 8的应用程序目标中时,我从导入的swift的框架objective-c头文件中得到以下错误。
:0:错误:无法生成Objective-C模块'‘,需要一个类型。
swift框架的objective-c头文件在以下行的'AchorType‘处有一个错误,由于某种原因,它被奇怪地封装在/* */中:
@interface NSLayoutAnchor (SWIFT_EXTENSION(<module name>))
- (void)constrainEqual:(NSLayoutAnchor</* AnchorType */> * _Nonnull)anchor constant:(CGFloat)constant;
@end这看起来像是swift中的一个bug,自动生成的objective-c头文件(针对swift框架)对于这种特定的类型是错误的。如果我删除扩展,问题就解决了。
我是不是包装错了?
https://stackoverflow.com/questions/41297516
复制相似问题