【问题标题】:coredata accessing data relationship faultcoredata 访问数据关系故障
【发布时间】:2015-02-18 21:59:35
【问题描述】:

我有 coredata 项目,这里是我的 .h 文件:

@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];


    Content *content1 = [NSEntityDescription insertNewObjectForEntityForName:@"Content" inManagedObjectContext:moc];

    content1.category = catego;
    content1.title = _titleOutlet.stringValue;
    content1.body = _bodyOutlet.stringValue;

    NSMutableSet  *tagSet = [NSMutableSet set];


    for (NSManagedObject *obj in tagsResults)
    {
        [tagSet addObject:obj];
    }

    content1.tags = tagSet;

我现在的问题是当我尝试访问内容中的标签时,我得到以下信息:

tags = "<relationship fault: 0x60000002d820 'tags'>";

如何才能获取到内容的标签?

【问题讨论】:

标签: ios objective-c xcode core-data


【解决方案1】:

我想以不同的方式做到这一点:

NSError *error = nil;
    NSManagedObjectContext *moc = [self managedObjectContext];
    NSEntityDescription *contentDescription = [ NSEntityDescription entityForName:@"Content" inManagedObjectContext:moc];
    NSFetchRequest *contentRequest = [NSFetchRequest new];
    contentRequest.entity = contentDescription;
    NSArray *results = [moc executeFetchRequest:contentRequest error:&error];
    NSLog(@"results content %@",results);

    Content *myCont = [results objectAtIndex:0];

    NSLog(@"list of tags %@", [[myCont tags] valueForKey:@"tag"]);

【讨论】:

    猜你喜欢
    • 2012-02-11
    • 1970-01-01
    • 2011-11-10
    • 2012-09-07
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多