Swift构建错误(涉及单词“class”作为参数)与子类Objective-C类

时间:2015-05-20 19:09:08

标签: ios objective-c swift

尝试在Swift中子类化自定义Objective-C类(UIViewController的子类)时出现构建错误。

当我尝试在Swift中进行子类化时,我会在下面的图片中看到构建错误。所有这些都与使用class这个词作为OCMapper库中的参数(我在哪里打开an issue)有关。

更多说明:

  • 在项目中,我在Swift代码中导入和使用Objective-C代码,并在Objective-C代码中导入和使用Swift代码。
  • 我仅在Module-Swift.h.m文件中导入已编译的.mm,并在.h个文件中转发我需要的类。
  • 我试图创建一个Module-Swift-Fixed.h类,我转发声明和/或导入自定义的Objective-C类标题(按照建议的here),但这没有什么区别。

many build errors build error

有没有人见过这样的事情或有解决方案?

1 个答案:

答案 0 :(得分:1)

我还没有能够跟踪语言规范中记录的位置,但我怀疑你遇到了我最近在Objective-c中遇到的同样的问题,因为转移到Xcode 6.4。

我有一条消息(方法)定义如下

- (BOOL)canProcessClass:(Class) class {
    return [class isSubclassOfClass:[NSSet class]];
}

与您提到的Expected identifier相同的编译错误。修复很简单 - 只需将class参数重命名为classToProcess。哪个会给你以下

- (BOOL)canProcessClass:(Class) classToProcess {
    return [classToProcess isSubclassOfClass:[NSSet classToProcess]];
}

因此,只需将Swift代码中的参数重命名为不使用(键)字class,你应该没问题。

如果有人能指出我记录的语言规范,我会非常感激。据我所知,您不应该使用Class,但我无法找到有关class的任何内容,除非明显是它是一条消息(方法)可以上课。