由于“Elaborated类型引用了typedef”错误,Project-Swift.h文件无法编译

时间:2016-07-04 14:50:22

标签: ios xcode8 ios10

要点: 我已将StreamDelegate方法public func stream(_ aStream: Stream, handle eventCode: Stream.Event)添加到我的swift类并编译了该项目。在生成Project-Swift.h时,编译器无法编译并将错误显示为Elaborated type refers to a typedef

重现步骤: 1.将StreamDelegate添加到您的快速课程中。 2.将公开func stream(_ aStream: Stream, handle eventCode: Stream.Event)添加到您的班级。 3.编译项目。

预期结果: Project-Swift.h文件应该正确编译。

实际结果: Project-Swift.h文件中的错误:- (void)stream:(NSStream * _Nonnull)aStream handleEvent:(enum NSStreamEvent)eventCode;

临时修复: 如果我在enum上移除了Project-Swift.h上的- (void)stream:(NSStream * _Nonnull)aStream handleEvent:(enum NSStreamEvent)eventCode;关键字,那么项目就会正确编译并构建成功。

iOS版:iOS 10 beta 1 Xcode版本:Xcode 8 beta Swift版本:2.3或3.0

1 个答案:

答案 0 :(得分:1)

通过在我的Swift课程中@nonobjc前面添加func stream(_ aStream: Stream, handle eventCode: Stream.Event)关键字,我找到了解决上述错误的方法。因此编译器不在Project-Swift.h文件中包含该方法,并且在编译时Project-Swift.h中没有错误。

@nonobjc public func stream(_ aStream: Stream, handle eventCode: Stream.Event) {
    //Other stuffs
}

我认为这不是上述问题的正确解决方案。但对我来说,我不想从Objective-C类调用上面的委托方法。

谢谢!