核心数据 – 使用Group By的瞬态属性

我创build一个UITableView与一些聚合的数据。 一路上,部分标题需要用于sorting和分组表格视图单元格。

问题是我想在NSFetchRequest中使用一个瞬态属性来生成节标题和结果sorting。 问题是,虽然设置NSFetchRequest我收到一个“NSInvalidArgumentException”,原因:“无效的keypath player.fullName传递给setPropertiesToFetch”。

NSFetchRequest的主要实体是一个具有以下属性的Player实体:firstName&lastName。 为了对数据进行sorting和分组,已经引入了一个瞬态属性“fullName”。 这是lastName和firstName属性的简单连接。

到目前为止尝试的东西是:

a)定义 – (NSString *)fullName方法

b)定义@property(非primefaces,只读)NSString * fullName

c)添加一个@dynamic fullName

d)将FullName属性添加到播放器实体并使其变为瞬态。

有没有什么想法,或者有没有在包含group by子句的NSFetchRequest中select瞬态属性。

任何帮助赞赏。

那么最后它似乎包括一个组中的瞬态属性NSFetchResults与分组是不可能的。

杰顿的伟大build议接近了。 最后,瞬态属性fullName很容易在更新实体时生成,并且只是非常less地更新,所以解决scheme是停止使用瞬态属性并创build一个完全成熟的属性。 只要把它看作极端的非正规化。

解决scheme是设置以下

-(void)setLastName:(NSString*)aName { [self willChangeValueForKey: @"lastName" ]; [self setPrimitiveValue: aName forKey: @"lastName" ]; [self updateFullName]; [self didChangeValueForKey: @"lastName" ]; } -(void)setFirstName:(NSString*)aName { [self willChangeValueForKey: @"firstName" ]; [self setPrimitiveValue: aName forKey: @"firstName"]; [self updateFullName]; [self didChangeValueForKey: @"firstName" ]; } 

这将更新fullName作为播放器实体的属性,并删除了我的问题。 希望能帮助到你。

您不能在您的获取请求中包含瞬态属性,但只要它们以相同的顺序出现,您就可以将它们用于节名称键path。

尝试对lastName和firstName(数组中的两个单独的sorting描述符)进行sorting请求,然后在创build提取的结果控制器(上面的列表中的a和b)时使用player.fullName作为节名称键path。

    Interesting Posts