【问题标题】:Counting currency from NSDictionary objects从 NSDictionary 对象计算货币
【发布时间】:2012-05-15 14:51:01
【问题描述】:

基本思想是遍历一个充满 .plist 的目录,其中包含包含货币值的 NSDictionary 对象。

问题

如何遍历所有目录内容并提取所有“Current Value”对象并将它们加在一起以获得总量?

示例

NSArray * itemList = [MANAGER contentsOfDirectoryAtPath:[NSString stringWithFormat:@"%@",INVENTORY_PATH] error:nil];
for ( NSString * item in itemList )
{
    NSDictionary * currentItem = [NSDictionary dictionaryWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",INVENTORY_PATH, item]];

    float monetaries = [[currentItem objectForKey:@"Current Value"] floatValue];

    NSLog(@"Current Value: %.2f",monetaries);       
} 

电流输出

2012-05-06 22:11:33.583 WrightsCS[3151:15803] Current Value: 350.99
2012-05-06 22:11:33.584 WrightsCS[3151:15803] Current Value: 321.54

期望的输出

2012-05-06 22:11:33.584 WrightsCS[3151:15803] Total Value: 672.53

解决方案

float total = 0.0f ;
float monetaries = 0.0f;

NSArray * itemList = [MANAGER contentsOfDirectoryAtPath:[NSString stringWithFormat:@"%@",INVENTORY_PATH] error:nil];
for ( NSString * item in itemList )
{
    NSDictionary * currentItem = [NSDictionary dictionaryWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",INVENTORY_PATH, item]];

    monetaries = [[currentItem objectForKey:@"Current Value"] floatValue];
    total += monetaries ;     

    NSLog(@"Current Value: %.2f",monetaries);  
}    

NSLog(@"Total Value: %.2f",total);  

解决方案输出

2012-05-06 22:26:05.460 WrightsCS[3205:15803] Current Value: 350.99
2012-05-06 22:26:05.462 WrightsCS[3205:15803] Current Value: 321.54
2012-05-06 22:26:05.462 WrightsCS[3205:15803] Total Value: 672.53

【问题讨论】:

    标签: objective-c ios nsnumberformatter nsenumerator


    【解决方案1】:

    你不能保持一个运行总数还是我错过了?

    NSArray * itemList = [MANAGER contentsOfDirectoryAtPath:[NSString stringWithFormat:@"%@",INVENTORY_PATH] error:nil];
    
    float total = 0.0f ;
    for ( NSString * item in itemList )
    {
        NSDictionary * currentItem = [NSDictionary dictionaryWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",INVENTORY_PATH, item]];
    
        float monetaries = [[currentItem objectForKey:@"Current Value"] floatValue];
        total += monetaries ;
    //    NSLog(@"Current Value: %.2f",monetaries);       
    } 
    
    NSLog(@"Total Value: %.2f",monetaries);       
    

    【讨论】:

    • 也不是使用-stringWithFormat:来构造路径我认为使用-stringByAddingPathComponent:更正确
    猜你喜欢
    • 2019-03-09
    • 2018-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多