2013-12-22 3 views
-1

Как я могу перечислить значения экземпляров в этом коде через быстрое перечисление, Он возвращает адреса массивов, а также я чувствую, что для этого есть короткий путь.Перечислимые объекты NSMutableArray

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); 
} 
+2

Что вы пытаетесь сделать именно? – nhgrif

+0

Вы должны использовать NSDecimalNumber для хранения валюты. –

+0

Я хочу распечатать значения цен – shaideru

ответ

0

Если вы не хотите, чтобы изменить свой BNRStockHolding класс, он бы выглядеть примерно так:

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

отлично работает! Спасибо большое! Наконец я могу спать. – shaideru

3

Вы хотите распечатать объекты? Если да, попробуйте определить метод description в вашем классе BNRStockHolding. Например:

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

Вместо того, чтобы печатать адреса, он распечатает установленную вами NSString.

+0

Я хочу, чтобы все значения в массиве и быстро перечисляли все значения. – shaideru

+2

Реализация этого метода в классе 'BNRStockHolding' и изменение ничего не сделают. – nhgrif

+0

Несомненно, вам просто нужно добавить любые другие значения, которые вы хотите напечатать в вышеприведенной версии NSS. –

Смежные вопросы