我有一个关于快速便利初始化程序的问题。我有一个ComputerAlgebra项目。这是一个Cocoa框架(目前适用于iOS),它包含以下代码:
public class CANumber{
public convenience init(value:String){
...
}
}
这构建良好。
现在,我在另一个项目中使用此框架,并希望在那里使用CANumber。我现在得到一个构建错误:
Duplicate declaration of method 'initWithValue'
当我点击该消息时,它会将我带到一个中间文件ComputerAlgebra-swift.h。在那里,它写道:
SWIFT_CLASS("_TtC15ComputerAlgebra8CANumber")
@interface CANumber : CABasicTerm
...
- (instancetype)initWithValue:(NSString *)value;
@end
显然,XCode生成一个具有错误访问级别的标题(这是一个桥接标题?),导致初始化程序的两个声明。当我在行的开头用'+'替换' - '时,项目编译得很好。这只发生在公共便利初始化器上。
BTW:我正在运行Xcode 6.1.1
因为我只使用swift而没有使用Objective-C:有没有办法可以跳过* .h文件的生成,或者是否有其他方法可以在* .h文件中生成“正确”的代码。手动替换所有' - '是非常麻烦的。
感谢您的帮助。
拉尔夫