2
我有一个名为Recipient的coredata实体。我需要根据他们名字的第一个字符对收件人进行分组。我正在使用fetechedresults控制器。我需要一个属性,我可以提供给NSFetchedResults控制器以将其用作区段键。这个属性不需要保存在coredata中。所以我想创建一个Transient属性并为该属性提供我自己的setter和getter实现。如何声明coredata实体中的瞬态变量
应用程序崩溃,说没有收件人实体中找到这样的属性。请帮忙。
在Recipient.h我
@interface Recipient : NSManagedObject
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSString * namesFirstCharacter;
@end
在Recipient.m我
@dynamic name;
@ dynamic namesFirstCharacter;
-(NSString *) namesFirstCharacter{
//my coide to return first character of name
}
不工作:(我在Recipient.h中为namesFirstCharacter声明了readonly属性,然后为此写了我自己的getter,为NSFetchedResults提供了namesFirstCharacter作为节键控制器崩溃,说“keypath namesFirstCharacter not found in Recipient entity”:( –
我已经多次使用过该技术,请显示FRC的属性定义和设置。 – Avi
嗨,是的,你是正确的:)事实上,我声明一个瞬态属性我显示的方式甚至没有错:)错误并不是因为FecthedResultsController部分的关键,实际上我已经在它上面写了一个排序描述符,并且该排序描述符正在使用瞬态属性:)我再次阅读文档“文档清楚地表明,我们只能使用瞬态属性仅用于节关键路径不应该用在排序描述符中“正如我看到的那样或者我认为我宣称它是错误的,但实际情况是排序描述符的用法是错误的。Thnks fr the help :) Up-voting your ans –