【问题标题】:coredata NSFetchRequest one to many relationship Relationship fault on managed objectcoredata NSFetchRequest 一对多关系 托管对象上的关系错误
【发布时间】:2015-02-26 20:15:00
【问题描述】:

我有一个包含以下实体的 coredata 项目:

我正在尝试根据类别获取内容列表:

这是我的核心数据类 .h:

@interface Content : NSManagedObject

@property (nonatomic, retain) NSString * contenido;
@property (nonatomic, retain) NSNumber * index;
@property (nonatomic, retain) NSString * titulo;
@property (nonatomic, retain) NSNumber * uploadCloudKit;
@property (nonatomic, retain) Categories *category;

---

@class Content;

@interface Categories : NSManagedObject

@property (nonatomic, retain) NSString * categoryName;
@property (nonatomic, retain) NSSet *content;
@end



NSEntityDescription *categoryDescription = [ NSEntityDescription entityForName:@"Categories" inManagedObjectContext:moc];

NSFetchRequest *categoRequest = [NSFetchRequest new];
categoRequest.entity = categoryDescription;
NSPredicate *categoPredicate = [NSPredicate predicateWithFormat:@"categoryName like %@", category];
categoRequest.predicate = categoPredicate;
 NSArray *results = [moc executeFetchRequest:categoRequest error:&error];

但是当我尝试访问我得到的类别的结果内容时:

po [results valueForKey:@"content"]
<__NSArrayI 0x6080000243a0>(
Relationship 'content' fault on managed object (0x6080000a2220) <Categories: 0x6080000a2220> (entity: Categories; id: 0x40002b <x-coredata://FDBA3FB2-F1F8-498E-9071-3A5D1ABE66F0/Categories/p1> ; data: {
    categoryName = movies;
    content = "<relationship fault: 0x610000030fa0 'content'>";
})
)

你们谁知道我怎样才能得到结果的内容项?

非常感谢您的帮助

【问题讨论】:

标签: ios objective-c iphone core-data


【解决方案1】:

这是 CoreData 的正常行为。你应该阅读Apple Documentation。在那里您可以阅读有关 CoreData 的故障对象的信息。用两个词 - 错误意味着 CoreData 有这个对象但知道(由于某种原因 CoreData 不会打印你对象的所有字段)。 要查看所有字段,您应该这样做:

[categoRequest setReturnsObjectsAsFaults:NO];

但我建议您仅在调试时这样做,因为 CoreData 更聪明,并且知道如何处理内存管理)

【讨论】:

    猜你喜欢
    • 2014-04-10
    • 2014-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多