Jump to content

Witaj!

Zaloguj lub Zarejestruj się aby uzyskać pełny dostęp do forum.

Photo
- - - - -

Problem z Core Data, dla ambitnych i wyrozumiałych ;)


  • Please log in to reply
6 replies to this topic

#1 murdok

murdok
  • 11 posts

Posted 10 March 2011 - 19:23

Witam,

mam mały problem z relacjami w CoreData. Nie mogę za bardzo znaleźć potrzebnych mi informacji w necie, albo nie zupełnie te informacje rozumiem, więc zwracam się z pytaniem do Was ;) Od razu zaznaczę, że piszę pierwszą aplikację i pierwszy raz mam styczność z CoreData, więc proszę o wyrozumiałość ;).

Poniżej przykładowy model CoreData (zaznaczam, przykładowy! Będzie na nim łatwo zapewne zrozumieć).

Posted Image

Nie wiem czy dobrze zbudowałem ten model, ale w skrócie chodzi o to: jest kilka firm, każda firma ma wielu pracowników, pracownik może należeć tylko do jednej firmy, są rodzaje umowy (pracownik może mieć tylko jeden rodzaj) tak samo jak ze stanowiskiem. Ogólnie nie umiem zrobić tych powiązań.

Na "dzień dobry" pojawia się TableView z listą firm (możliwość ich edytowania, dodawania, itp).
I to akurat potrafię zrobić. Problem mam natomiast z relacjami. Nie umiem dodać pracownika do firmy, ani też umowy i stanowiska do pracowników.

Czy ktoś z Was mógłby trochę przybliżyć temat relacji?
Byłbym wdzięczny.

#2 JKK

JKK
  • 411 posts
  • SkądOsolin

Posted 10 March 2011 - 19:52

A to nie wystarczy: Relationships and Fetched Properties
Bo ja się z tego nauczyłem ;-)
Przykład nawet jakiś taki podobny do Twojego...

#3 murdok

murdok
  • 11 posts

Posted 10 March 2011 - 20:27

Właśnie średnio to kumam ;/ no ale nic, dzięki, będę kombinował ;)

#4 wojtkow

wojtkow


  • 6767 posts
  • Płeć:
  • SkądPoznań

Posted 10 March 2011 - 20:27

Pokrótce, bo najlepiej prześledzić przykłady z dokumentacji SDK ( Loading… ): żeby dodać Stanowisko do Pracownika:

1. Tworzysz Stanowisko (np. stanowisko1)
2. Tworzy Pracownika (np. pracownik1)
3. Wywołujesz pracownik.stanowisko = stanowisko1 (ewentualnie [pracownik setStanowisko:stanowisko1];)
i voila - robota odwalona.

Tu nie ma naprawdę filozofii, pod warunkiem dobrze stworzonego modelu, XCode wygeneruje Ci odpowiednie klasy, które mają całą obsługę relacji.

#5 murdok

murdok
  • 11 posts

Posted 10 March 2011 - 21:28

Dobra już rozumiem ;) Dzięki za pomoc. W razie problemów pozwolę sobie jeszcze zapytać ;)

#6 squid

squid
  • 242 posts

Posted 11 March 2011 - 11:10

To ja mam pytanie do obeznanych. Sam na co dzień siedze w relacyjnych bazach danych ale bardzo mnie ciagnie zeby zaczac cos robic w iOS. W podanym przykladzie nie widze definicji kluczy glownych. Czy w CoreData zostana one zdefiniowane automatycznie i wykorzystane w automatycznei wygenerowanych klasach?

#7 JKK

JKK
  • 411 posts
  • SkądOsolin

Posted 12 March 2011 - 13:50

Klucze główne nie są konieczne (znaczy nie musisz sam ich definiować) - jak byś podejrzał plik sqlite z jakiegoś programu w CoreData to byś zobaczył, że zakłada 3 dodatkowe pola mi. Z_PK Integer Primary Key. W modelu ich nie widać.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users