使用框架中的Swift公共便利初始化器构建错误

时间:2014-12-15 09:46:12

标签: ios xcode swift frameworks initialization

我有一个关于快速便利初始化程序的问题。我有一个ComputerAlgebra项目。这是一个Cocoa框架(目前适用于iOS),它包含以下代码:

public class CANumber{
    public convenience init(value:String){
    ...
    }
}

这构建良好。

现在,我在另一个项目中使用此框架,并希望在那里使用CANumber。我现在得到一个构建错误:

Duplicate declaration of method 'initWithValue'

当我点击该消息时,它会将我带到一个中间文件Co​​mputerAlgebra-swift.h。在那里,它写道:

SWIFT_CLASS("_TtC15ComputerAlgebra8CANumber")
@interface CANumber : CABasicTerm
...
- (instancetype)initWithValue:(NSString *)value;
@end

显然,XCode生成一个具有错误访问级别的标题(这是一个桥接标题?),导致初始化程序的两个声明。当我在行的开头用'+'替换' - '时,项目编译得很好。这只发生在公共便利初始化器上。

BTW:我正在运行Xcode 6.1.1

因为我只使用swift而没有使用Objective-C:有没有办法可以跳过* .h文件的生成,或者是否有其他方法可以在* .h文件中生成“正确”的代码。手动替换所有' - '是非常麻烦的。

感谢您的帮助。

拉​​尔夫

0 个答案:

没有答案