我刚开始使用iOS编程,非常感谢您提前给予的耐心和帮助。 我是一个具有名为“value”的属性(float)的实体“Expense”。我有一个tableView填充形式coreData与NSFetchedResultsController。 我试图在标签(或表头)中显示所有“费用”的“值”的总和,但在阅读Apple Docs和搜索不同的论坛后,我无法实施解决方案。肯定是初学者迷失方向。 欣赏任何关于实现这个操作之王的最佳方式的迹象,或任何类似的显示类似解决方案的代码。首先是总结一个CoreData属性
3
A
回答
8
。如果要计算和存储货币,则应该使用Decimal(nsdecimalnumber的核心数据名称)和NSDecimalNumber。 我使用float实现了你需要的代码。但是你应该把它改成NSDecimalNumber。阅读this知道为什么你应该这样做
如果您想要将费用值添加到节标题,这很容易。你基本上要花费该部分中的所有对象并对其进行总结。
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
id <NSFetchedResultsSectionInfo> sectionInfo = [[self.fetchedResultsController sections] objectAtIndex:section];
float expense = 0;
for (NSManagedObject *object in [sectionInfo objects]) {
expense += [[object valueForKey:@"expense"] floatValue];
}
return [NSString stringWithFormat:@"%@ [Expense: %f]", [sectionInfo name], expense];
}
即使你不使用表中的部分,这将工作。但是你应该改变返回的字符串。
我认为你应该能够理解它。还有一个更通用的方法来做到这一点。我为它写了一些更详细的内容。它在for循环中使用3行而不是1,但它完全一样。
float expense = 0;
for (NSManagedObject *object in [self.fetchedResultsController fetchedObjects]) {
NSNumber *objectExpenseNumber = [object valueForKey:@"expense"];
float objectExpense = [objectExpenseNumber floatValue];
expense = expense + objectExpense;
}
NSLog(@"Expense: %f", expense);
不是很好解释。
编辑:如果您使用NSDecimalNumber
NSDecimalNumber *expense = [NSDecimalNumber decimalNumberWithString:@"0"];
for (NSManagedObject *object in [self.fetchedResultsController fetchedObjects]) {
NSDecimalNumber *objectExpenseNumber = [object valueForKey:@"expense"];
expense = [expense decimalNumberByAdding:objectExpenseNumber];
}
NSLog(@"Expense: %@", expense);
相关问题
- 1. CoreData总结性能
- 2. iOS Swift总结CoreData属性值
- 3. XSLT总结两个属性
- 4. 基于另一个对象属性填充CoreData ManagedObject属性
- 5. XML Java:总结一组属性
- 6. 递归CoreData属性
- 7. 问题与访问一CoreData属性
- 8. 总结Cypher中同一节点的两个属性
- 9. CoreData属性访问问题
- 10. 替换CoreData中的属性
- 11. CoreData NSPredicate属性名称
- 12. CoreData:瞬态属性和localizedCaseInsensitiveCompare
- 13. 属性的coredata默认
- 14. CoreData,瞬态属性和EXC_BAD_ACCESS。
- 15. CoreData中的瞬态属性
- 16. 如何获取CoreData DB中特定属性的总和?
- 17. Rails 3总结两个属性,并分配给另一个在同一模型
- 18. CoreData性能重复实体与属性
- 19. coredata - 将一个属性读取到数组中
- 20. 总结基于子集合的属性
- 21. 总结XML属性有时返回零
- 22. 总和coredata
- 23. 总和(属性“field1”+属性“field2”),然后总和所有结果的行
- 24. 不能修改存储在一个结构的属性另一个属性
- 25. 在迭代另一个属性时修改结构的一个属性
- 26. .net mvc 2验证:总结几个属性的值
- 27. 有没有更好的方法来总结多个属性?
- 28. CoreData属性动态命名和设置实体属性
- 29. 获取CoreData中的特定属性或属性
- 30. CoreData属性的索引属性是做什么的?
感谢您抽出一段时间“fluchtpunkt”,并指着方式与货币合作,这将是代码。良好的意见总是欢迎和采取。我的主要问题是如何计算用户可以在TableView中插入的所有费用的“价值”的@Sum,并更准确地将其存储为实体“费用”的“价值”或“金额”属性。我没有找到一种方法来计算CoreData的一个属性的总和。然后,我会在某处显示“总金额”。谢谢 – Diogo 2011-01-23 19:07:19