0

我用我创建的 3 个类实例填充了一个 NSMutableArray。现在我想迭代这个数组来获取一些变量值。我可以这样做,但无法打印我的实例名称(面包、水……)相反,我得到了他们的地址。我想这很简单,但我有点挣扎,所以如果有人知道如何......谢谢

#import <Foundation/Foundation.h>
#import "StockHolding.h";

int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

StockHolding *bread = [[StockHolding alloc] init];
[bread setPurchaseSharePrice:100];
[bread setCurrentSharePrice:120];
[bread setNumberOfShares:100];

StockHolding *water = [[StockHolding alloc] init];
[water setPurchaseSharePrice:100];
[water setCurrentSharePrice:80];
[water setNumberOfShares:10];

StockHolding *tomatoes = [[StockHolding alloc] init];
[tomatoes setPurchaseSharePrice:100];
[tomatoes setCurrentSharePrice:50];
[tomatoes setNumberOfShares:1];

NSMutableArray *myStock = [NSMutableArray arrayWithObjects:bread, water, tomatoes, nil];

for (StockHolding *s in myStock)
{
    NSLog(@"Here is what I paid for my %p : %f", s, [s costInDollars]);
    NSLog(@"Here is what I earn for my %p : %f", s, [s valueInDollars]);

}

[pool drain];
return 0;

}

4

2 回答 2

1

为什么不在-(NSString *)descriptionStockHolding 类上实现该方法?然后你可以使用%@字符串格式,它会在那里输出描述。

或者,您也可以使用 . 输出 StockHolding 实例的任何其他字符串属性%@

于 2012-12-13T06:05:15.643 回答
0

如果你想 NSLog 一个对象和它的指针名称,你可以在你的预处理器宏中添加这个#define#define OLog(x) NSLog(@"%s = %@",#x, x);

于 2014-03-07T00:59:40.543 回答