我有一个类Comment
声明如下:
public class Comment: NSManagedObject {
vars and methods...
}
当我尝试编译我的项目时,我收到的错误是:"重新定义'评论'作为swift中不同类型的符号。"它会在生成的.h
文件中突出显示这一行:@interface Comment : NSManagedObject
,它告诉我Comment
的原始声明位于AIFF.h
(基金会的某些部分)和该行声明是:typedef struct Comment Comment;
。
我最近才遇到这个问题,而且我之前成功地使用Comment
对象构建了该项目。为什么在Swift中会发生这样的错误?
如果我删除它编译的NSManagedObject
超类......
答案 0 :(得分:1)
可能是您的类Comment
在Foundation框架中的其他位置定义的情况。您需要做的是仅导入文件中需要的特定类。首先删除源文件中的所有import
语句,然后导入NSManagedObject
,如下所示:
import class CoreData.NSManagedObject
然后,您将可以访问NSManagedObject
子类所需的Comment
类。如果您需要Foundation
框架中的任何类或结构(例如NSError
),您应该像这样导入它们:
import class Foundation.NSError
这将消除有关重新定义类Comment
的编译器错误。
还要确保使用Command + Shift + K
和Command + Shift + alt + K