2

我有一个包含核心数据、基于故事板和 3 个类的项目。核心数据的目的是在 MapKit 上保存位置,但是当我创建 NSManagedObject 的子类“Spot”类时,我得到了这个 Buildtime 错误。它说:

duplicate symbol _OBJC_METACLASS_$_Spot in:
    /Users/vitorferreira/Library/Developer/Xcode/DerivedData/CoreDataCity-buwqjxltijduybepebqqghhkrqwe/Build/Intermediates/CoreDataCity.build/Debug-iphonesimulator/CoreDataCity.build/Objects-normal/i386/Spot.o
    /Users/vitorferreira/Library/Developer/Xcode/DerivedData/CoreDataCity-buwqjxltijduybepebqqghhkrqwe/Build/Intermediates/CoreDataCity.build/Debug-iphonesimulator/CoreDataCity.build/Objects-normal/i386/Spot+CoreDataClass.o
ld: 2 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在之前的评论中(这是一个已编辑的问题) - 据说原因是库中的代码重复......但老实说我不明白......任何帮助都会非常感激

4

3 回答 3

12
于 2017-02-06T22:07:00.567 回答
1

这意味着您的库中某处有重复的代码,您是否在多个位置导入了核心数据?

于 2017-02-03T16:03:51.890 回答
0

根据重复符号的名称,我猜这是一个 Objective C 项目,并且您在 and 中都有以下(或类似的Spot.hSpot+CoreDataClass.h

@interface Spot: NSManagedObject

_OBJC_METACLASS_$_Spot是编译器赋予Spot元类的名称,它是返回的对象的类型+[Spot class]

于 2017-02-06T21:42:10.273 回答