Ich habe zwei Header einer Klasse und es ist die Erweiterung (generiert von Xcode für NSManaged-Objekt). Aber ich bekomme einen Linker Fehler und ich fand heraus, dass es wegen einer zirkulären Referenz war.Linker Fehler aufgrund der Zirkelreferenz
Conversation + CoreDataClass.h
NS_ASSUME_NONNULL_BEGIN
@interface Conversation : NSManagedObject
@end
NS_ASSUME_NONNULL_END
#import "Conversation+CoreDataProperties.h"
Conversation + CoreDataProperties.h
#import "Conversation+CoreDataClass.h"
NS_ASSUME_NONNULL_BEGIN
@interface Conversation (CoreDataProperties)
+ (NSFetchRequest<Conversation *> *)fetchRequest;
@end
NS_ASSUME_NONNULL_END
Sie können deutlich sehen, die zirkulären Verweis hier. Ich fand diese question, wo das Problem war, eine @class
Deklaration hinzuzufügen und den Header zu entfernen. Also habe ich die import
Anweisung im Conversation+CoreDataProperties.h
auskommentiert und @class Conversation;
hinzugefügt. Jetzt erscheinen zwei Fehler, die sagen, dass es eine undefinierte Klasse ist. Habe den Screenshot des Fehlers unten angehängt. Ich verstehe nicht ganz, warum das passiert und was ich tun muss, um es zu beheben. Jede Hilfe wird sehr geschätzt. Vielen Dank!
Linker Fehler
duplicate symbol _OBJC_CLASS_$_Conversation in: /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-gbhivuwptwzhkldfbmjghkokozgn/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/Conversation+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_Conversation in: /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-gbhivuwptwzhkldfbmjghkokozgn/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/Conversation+CoreDataClass.o duplicate symbol _OBJC_CLASS_$_ConversationDate in: /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-gbhivuwptwzhkldfbmjghkokozgn/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/ConversationDate+CoreDataClass.o duplicate symbol _OBJC_METACLASS_$_ConversationDate in: /Users/xxx/Library/Developer/Xcode/DerivedData/xxx-gbhivuwptwzhkldfbmjghkokozgn/Build/Intermediates/xxx.build/Debug-iphoneos/xxx.build/Objects-normal/arm64/ConversationDate+CoreDataClass.o ld: 4 duplicate symbols for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Das ist ein bisschen seltsam. Versuchen Sie, Ihr Projekt zu reinigen (shift-cmd-K) und erstellen Sie es neu. – dirkgroten
@dirkgroten Das hat nicht geholfen. Habe immer noch die Fehler. – ebby94