2016-11-29 7 views
5

Po prostu utworzyłem projekt demonstracyjny z Core Data.Błąd symbolu duplikatu w podklasie NSManagedObject

Utworzono jednostkę Userinfo w moim modelu danych. Teraz utworzyłem podklasę tej encji NSManagedObject.

Xcode wygenerowało automatycznie te 4 klasy.

enter image description here

Teraz kiedy zbudować projekt generuje ten błąd:

enter image description here

Zrobiłem wszystko, co wiem, aby usunąć błąd duplicacy ale nic nie pomogło.

Myślę, że jest to błąd Xcode. Proszę pomóż.

+0

Oto krótsze i łatwiejsze rozwiązanie dla mnie. [To jest] (https://stackoverflow.com/a/14449080/8551309) –

+0

[Tutaj jest] (https://stackoverflow.com/a/14449080/8551309) krótsze i łatwiejsze rozwiązanie dla mnie. –

Odpowiedz

9

Generujesz pliki, które zostały już wygenerowane przez Xcode, a tym samym otrzymasz zduplikowane deklaracje. Szczegółowe informacje na temat tej funkcji (nowe w Xcode 8) można znaleźć pod adresem this WWDC video.

Dwa ewentualne poprawki:

1) Za pomocą Xcode generowane ManagedObject podklasy (zalecana, nowoczesne podejście)

  • Usuń wszystkie wygenerowane podklasy NSManagedObject z projektu, jeśli istnieje.
  • Ustaw Codegen do Class Definition w swojej .xcdatamodel dla wszystkich podmiotów
  • Upewnij Module jest pusty ("Global nawigacji" w kolorze jasnoszarym) (obejść się błąd, jabłko, patrz this answer)

Uwaga:

Nigdy dodać automatycznie generowanych plików do projektu. Nawet jeśli nie widzisz wygenerowanych plików w projekcie, Xcode ma do niego odniesienie, więc możesz pisać rozszerzenia i takie. Na przykład:

extension MyEntity { 
    func doSomething() { 
     // 
    } 
} 

Możesz również polecić + kliknięcie wygenerowanego pliku w Xcode.

2) Wyzwalanie generacja podklasa ręcznie (a raczej paranoję ale bullet-udowodnić podejście, ignorując nowe funkcje Xcode)

  • Usuń wszystkie wygenerowane podklasy NSManagedObject z projektu, jeśli istnieje.
  • Ustaw Codegen do Manual/None w swojej .xcdatamodel dla wszystkich podmiotów
  • Czystych projektowych
  • Clean DerivedData folder
  • Restart Xcode
  • ręcznie wygenerować NSManagedObject podklasy (w menu "Edytor")
  • upewnić, pliki te są dodawane do Twojego projektu
  • build
+0

Gdzie są generowane te pliki? Ponieważ potrzebuję tych zajęć do mojego celu. – iPeter

+1

W danych pochodnych. Nie dodawaj ich do swojego projektu. Jeśli podążasz za odpowiedzią, działa, Xcode automatycznie odwołuje się do niego. Możesz również pisać rozszerzenia aso. Jeśli masz problemy, opisz swój problem. Spróbuję pomóc. – shallowThought

+0

Dziękuję bardzo. :) – iPeter

Powiązane problemy