重新定义评论'在迅捷中作为不同类型的符号

时间:2016-04-02 04:56:47

标签: swift core-data symbols

我有一个类Comment声明如下:

public class Comment: NSManagedObject {
    vars and methods...
}

当我尝试编译我的项目时,我收到的错误是:"重新定义'评论'作为swift中不同类型的符号。"它会在生成的.h文件中突出显示这一行:@interface Comment : NSManagedObject,它告诉我Comment的原始声明位于AIFF.h(基金会的某些部分)和该行声明是:typedef struct Comment Comment;

我最近才遇到这个问题,而且我之前成功地使用Comment对象构建了该项目。为什么在Swift中会发生这样的错误?

修改

如果我删除它编译的NSManagedObject超类......

1 个答案:

答案 0 :(得分:1)

可能是您的类Comment在Foundation框架中的其他位置定义的情况。您需要做的是仅导入文件中需要的特定类。首先删除源文件中的所有import语句,然后导入NSManagedObject,如下所示:

import class CoreData.NSManagedObject

然后,您将可以访问NSManagedObject子类所需的Comment类。如果您需要Foundation框架中的任何类或结构(例如NSError),您应该像这样导入它们:

import class Foundation.NSError

这将消除有关重新定义类Comment的编译器错误。

还要确保使用Command + Shift + KCommand + Shift + alt + K

清理项目并清理构建文件夹