我有一对一的coredata项目。这是我的.h:
@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;
但是在这一行&#34; content1.tags = tagSet;&#34;我收到以下错误:
[NSTaggedPointerString managedObjectContext]: unrecognized selector sent to instance 0x696669637355
NSTaggedPointerString managedObjectContext]: unrecognized selector sent to instance 0x696669637355
如果你知道我做错了什么,我真的很感激。
答案 0 :(得分:3)
您的NSMutableSet *tagSet
包含不是NSString
个实例的对象(可能是Tags
个实例)。
在这些方面:
Tags *storeTag = [obj valueForKey:@"tag"];
[tagArray addObject:storeTag];
您正在添加tag
属性,而不是Tags
实例本身。
也许只需用以下内容替换这两行:
[tagArray addObject:obj];