CoreData实体获取请求

时间:2015-08-25 02:09:02

标签: objective-c core-data xcdatamodel nsentitydescription fetched-property

我有一个名为TimeInterval的实体,其唯一属性是startDatefinishDate,其类型为日期。我显然不需要添加另一个名为totalTime的属性,因为可以通过执行以下操作来计算:[finishDate timeIntervalSinceDate: startDate]

我可以为属性totalTime创建一个fetched属性吗?如果没有,那么最好的方法是什么,而不必将totalTime作为属性添加,因为这似乎是多余的。

顺便说一句,我是Core-Data的新手。

1 个答案:

答案 0 :(得分:0)

为了对同一个表的不同列进行数学计算,我们基本上使用NSExpressionDescription,并将其设置为NSFetchRequest,如下所示:

NSExpressionDescription *expressionDesc = [[NSExpressionDescription alloc] init];
[expressionDesc setName:@"totalTime"];
NSExpression *expression = [NSExpression expressionForFunction:@"multiply:by:"
                                                    arguments:@[[NSExpression expressionForKeyPath:@"startDate"],
                                                               [NSExpression expressionForKeyPath:@"finishDate"]];
[expressionDesc setExpression:expression];
[expressionDesc setExpressionResultType:NSInteger64AttributeType];

fetchRequest.propertiesToFetch = @[expressionDesc]