Используйте отношение ко многим. Потому что это намного лучше и проще во время запросов на выборку. Смотрите скриншоты ниже. Обратите внимание на диспетчер отношений справа, установите «Отношения ко многим» из объекта NoteObject в «Теги». Игнорировать сущность игрока.
Да, и обратите внимание на «Правило удаления». Возможно, вы захотите удалить все теги, связанные с данным NoteObject. Так что в этом случае установите его на Cascade.
ПримечаниеОбъектное лицо 
тег сущности 
- Edit:
Чтобы добавить несколько тегов, вам нужно сначала получить ваш NoteObject - я предполагаю, что будет какой-то параметр ID, который вы будете использовать для различения NoteObjects. CoreData автоматически сгенерирует методы добавления / удаления тегов. Вам нужно будет использовать код, подобный приведенному ниже:
- (void)addTags:(NSArray *)tags toNoteObjectWithID:(NSString *)noteID {
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"NoteObject"];
NSPredicate *pred = [NSPredicate predicateWithFormat:@"noteID == %@", noteID];
[fetchRequest setPredicate:pred];
NoteObject *noteObject = [[[self managedObjectContext] executeFetchRequest:fetchRequest error:nil] lastObject];
for (NSString *tag in tags) {
Tag *t = [NSEntityDescription insertNewObjectForEntityForName:@"Tag"
inManagedObjectContext:[self managedObjectContext]];
t.body = tag;
t.noteObject = noteObject;
[noteObject addTagsObject:t];
}
[self saveContext];
}