Objective c NSMutableArray枚举对象

Objective c NSMutableArray枚举对象,objective-c,Objective C,如何通过快速枚举来枚举代码中实例的值,它返回数组的地址,而且我觉得有一种简单的方法可以做到这一点 BNRStockHolding *stockHolding = [[BNRStockHolding alloc] init]; [stockHolding setPurchasedSharePrice:2.30]; [stockHolding setCurrentSharePrice:4.50]; [stockHolding setNumberOfShares:40]; float p = [sto

如何通过快速枚举来枚举代码中实例的值,它返回数组的地址,而且我觉得有一种简单的方法可以做到这一点

BNRStockHolding *stockHolding = [[BNRStockHolding alloc] init];
[stockHolding setPurchasedSharePrice:2.30];
[stockHolding setCurrentSharePrice:4.50];
[stockHolding setNumberOfShares:40];
float p = [stockHolding purchasedSharePrice];
float c = [stockHolding currentSharePrice];
int n = [stockHolding numberOfShares];
float cost = [stockHolding costInDollars];
float val = [stockHolding valueInDollars];

BNRStockHolding *stockHolding1 = [[BNRStockHolding alloc] init];
[stockHolding setPurchasedSharePrice:12.19];
[stockHolding setCurrentSharePrice:10.56];
[stockHolding setNumberOfShares:90];
float p1 = [stockHolding purchasedSharePrice];
float c1 = [stockHolding currentSharePrice];
int n1 = [stockHolding numberOfShares];
float cost1 = [stockHolding costInDollars];
float val1 = [stockHolding valueInDollars];

BNRStockHolding *stockHolding2 = [[BNRStockHolding alloc] init];
[stockHolding setPurchasedSharePrice:45.10];
[stockHolding setCurrentSharePrice:49.51];
[stockHolding setNumberOfShares:210];
float p2 = [stockHolding purchasedSharePrice];
float c2 = [stockHolding currentSharePrice];
int n2 = [stockHolding numberOfShares];
float cost2 = [stockHolding costInDollars];
float val2 = [stockHolding valueInDollars];

NSMutableArray *threeInstances = [NSMutableArray arrayWithObjects:
    stockHolding, stockHolding1, stockHolding2, nil];

for(BNRStockHolding *d in threeInstances) {
    NSLog(@"%@", d);
}

您只想打印对象吗?如果是这样,请尝试在BNRStockHolding类中定义
description
方法。像这样:

- (NSString *)description {
    return [NSString stringWithFormat: @"PurchasedSharePrice=%f, CurrentSharePrice=%f", purchasedSharePrice, currentSharePrice];
}

它不会打印地址,而是打印出您在其中定义的NSString。

如果您不想修改您的
BNRStockHolding
类,它将如下所示:

for(BNRStockHolding *d in threeInstances) {
    NSLog(@"Number of shares: %d", [d numberOfShares]);
    NSLog(@"PurchasedSharePrice: %f, CurrentSharePrice: %f", [d 
        purchasedSharePrice], [d currentSharePrice]);
}

你到底想做什么?你应该使用NSDecimalNumber来存储货币。我想打印PricesTarget关于快速枚举的值。这是一种方便,而不是一个基本功能。确定要对数据执行的操作,如果快速枚举有效,则使用它。我希望数组中的所有值都能快速枚举所有值在
BNRStockHolding
类中简化此方法,并且不更改任何其他内容。当然,您只需在上面的NSString中添加您想要打印的任何其他值。效果非常好!非常感谢你!我终于可以睡觉了。