У меня есть проект coredata один для многих. Вот мой .h:coredata одно для многих отношений CoreDataGeneratedAccessors
@class Categories, Tags;
@interface Content : NSManagedObject
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * body;
@property (nonatomic, retain) Categories *category;
@property (nonatomic, retain) NSSet *tags;
@end
@interface Content (CoreDataGeneratedAccessors)
- (void)addTagsObject:(Tags *)value;
- (void)removeTagsObject:(Tags *)value;
- (void)addTags:(NSSet *)values;
- (void)removeTags:(NSSet *)values;
Вот моя реализация:
NSError *error = nil;
// Categories:
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *contentDescription = [ NSEntityDescription entityForName:@"Categories" inManagedObjectContext:moc];
NSFetchRequest *categoRequest = [NSFetchRequest new];
categoRequest.entity = contentDescription;
NSPredicate *categoPredicate = [NSPredicate predicateWithFormat:@"category like %@", _dropMenuOulet.stringValue];
categoRequest.predicate = categoPredicate;
NSArray *results = [moc executeFetchRequest:categoRequest error:&error];
Categories *catego = (Categories*) [results objectAtIndex:0];
// Tags:
NSEntityDescription *tagsDescription = [ NSEntityDescription entityForName:@"Tags" inManagedObjectContext:moc];
NSFetchRequest *tagsRequest = [NSFetchRequest new];
tagsRequest.entity = tagsDescription;
NSArray *tagsResults = [moc executeFetchRequest:tagsRequest error:&error];
NSMutableArray *tagArray = [ NSMutableArray new];
for (NSManagedObject *obj in tagsResults)
{
//firstName = [obj valueForKey:@"firstName"];
Tags *storeTag = [obj valueForKey:@"tag"];
[tagArray addObject:storeTag];
}
Content *content1 = [NSEntityDescription insertNewObjectForEntityForName:@"Content" inManagedObjectContext:moc];
content1.category = catego;
content1.title = _titleOutlet.stringValue;
content1.body = _bodyOutlet.stringValue;
NSMutableSet *tagSet = [NSMutableSet set];
for (int i = 0 ; i <tagArray.count; i++)
{
Tags *myTag = [tagArray objectAtIndex:i ];
[tagSet addObject:myTag];
}
content1.tags = tagSet;
Но на этой линии "content1.tags = множества ярлыков;" Я получаю следующую ошибку:
[NSTaggedPointerString managedObjectContext]: unrecognized selector sent to instance 0x696669637355
NSTaggedPointerString managedObjectContext]: unrecognized selector sent to instance 0x696669637355
Я буду очень признателен, если вы знаете, что я делаю неправильно, чтобы получить эту ошибку.
Unrelated, но почему вы создаете массив просто итерацию через него несколько строк позже, чтобы создать свой набор? Как только код работает, вы можете немного оптимизировать его. – picciano
спасибо, что эта работа великолепна, но если я хочу содержимое тегов на содержимое, я получаю теги = ""; , Как я могу получить доступ к тегам контента? –
user2924482
Я не совсем понимаю ваш вопрос. Но в любом случае я бы предложил опубликовать новый вопрос, а не спрашивать в комментариях. Это станет намного лучше в сообществе. – picciano