在线上分配多个对象?

时间:2012-10-27 14:22:13

标签: objective-c

StockHolding是我自己的类名,我想创建3个实例变量。代码的工作副本是这样的:

StockHolding *stock0 = [[StockHolding alloc] init];
StockHolding *stock1 = [[StockHolding alloc] init];
StockHolding *stock2 = [[StockHolding alloc] init];

但我的代码第一次是这样的:

StockHolding *stock0, *stock1, *stock2 = [[StockHolding alloc] init];

这对我不起作用:(

我知道我可以通过以下方式创建多个float / int变量:

float *x, *y, *z;

所以我的问题是,有没有办法可以在Objective-C中以这种方式分配多个实例varialbes?

2 个答案:

答案 0 :(得分:3)

StockHolding *stock0, *stock1, *stock2 = [[StockHolding alloc] init];

相同
StockHolding *stock0;
StockHolding *stock1;
StockHolding *stock2 = [[StockHolding alloc] init];

在一行上初始化多个对象并没有多大意义。你的第一种方法很好。

答案 1 :(得分:2)

什么?即使在C中你也不能做那样的事情。

int a, b, c = 3; //C is equal to 3, A and B has not been init yet

你只是在C中持有一个空地址。除非你为它分配内存,否则不能只对指针应用任何东西,这同样适用于Objective-C。