 <p>Each element in the array is represented by a single object in Core Data so, yes, you have to create an object for each element. If you didn't have to do this then you wouldn't have an object graph in the first place. </p> <p>You do have to check for an existing object because every object in the Core Data stack is utterly unique. However, doing so is no more complicated than checking for the same data in an array or a SQL table. </p> <p>Core Data's strength is the management of data models with complex relationships between data entities. That is often overkill for data that is little more than a single, dumb table with no relationships. However, the ease of integration with the UI and other parts of the app/system usually pays for the up front overkill in inputting that single table. </p>