【发布时间】:2015-07-04 05:26:10
【问题描述】:
我有一个 UITableView 有 2 个部分,每个部分获取已添加到 Core Data 的信息。每个部分都有一个称为数量的属性。我想得到每个部分的总和。
现在我的代码给了我所有值的总和。
如何修改它以通过每个部分?
我正在使用Integer 16 在两个部分之间添加值。
这是我的代码:
- (void)calculate {
CoreDataStack *coreDataStack = [CoreDataStack defaultStack];
NSManagedObjectContext *context = coreDataStack.managedObjectContext;
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MyEntityName"];
fetchRequest.resultType = NSDictionaryResultType;
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
expressionDescription.name = @"sumOfAmounts";
expressionDescription.expression = [NSExpression expressionForKeyPath:@"@sum.amount"];
expressionDescription.expressionResultType = NSDecimalAttributeType;
fetchRequest.propertiesToFetch = @[expressionDescription];
NSError *error = nil;
NSArray *result = [context executeFetchRequest:fetchRequest error:&error];
if (result == nil)
{
NSLog(@"Error: %@", error);
}
else
{
NSNumber *sumOfAmounts = [[result objectAtIndex:0] objectForKey:@"sumOfAmounts"];
}
}
解决方案:
我在我的代码中添加了一个 NSPredicate,并且能够获得我的 Integer 16 的某个值。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"myInt16 == x"]; // x is the value I want to get to (in my case I have 0 and 1)
[fetchRequest setPredicate:predicate];
【问题讨论】:
-
您可以发布该解决方案作为答案,并在几天后接受。
标签: ios objective-c uitableview core-data