我有一个名为TimeInterval
的实体,其唯一属性是startDate
和finishDate
,其类型为日期。我显然不需要添加另一个名为totalTime
的属性,因为可以通过执行以下操作来计算:[finishDate timeIntervalSinceDate: startDate]
我可以为属性totalTime
创建一个fetched属性吗?如果没有,那么最好的方法是什么,而不必将totalTime作为属性添加,因为这似乎是多余的。
顺便说一句,我是Core-Data的新手。
答案 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]