Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Array of Objects in Core Data Entity?

I've got two entities, one named exercise and the other named workout. I would like to store several different exercises in each workout object.

What is the correct logic here? Create an array of exercises in each workout?

like image 711
Abdulla Avatar asked May 01 '10 09:05

Abdulla


2 Answers

You can't create arrays in Core Data. You can simulate them, however, using To-Many Relationships. Add a relationship to your Workout entity called, say, exercises. Then set its Destination to the Exercise entity and check the "To-Many Relationship" checkbox. Note that the exercises will be stored as an NSSet, not an NSArray, so they will not be ordered. If you want them to be in a specific order, I would recommend using the BWOrderedManagedObject subclass.

like image 121
Steve Harrison Avatar answered Oct 20 '22 22:10

Steve Harrison


As the (still perfect) decade old answer of @SteveHarrison explains, you just click for "relationship", but do select "to-many"

enter image description here

so, some entity has many "Reply" items. (I put "CD" in front of all entity names, hence, "CDReply".)

After you next rebuild, for free, you get

enter image description here

hence, say you have one of your CDPost which is p

The code is this simple

for oneJsonReply in yourJson {
    r = CDReply.your code to convert ( oneJsonReply ) to a CDReply
    p.addToReplys( r )
like image 33
Fattie Avatar answered Oct 20 '22 21:10

Fattie