变量名内的变量

时间:2012-07-22 06:19:54

标签: objective-c ios nsarray

我有一个名为int的{​​{1}}变量。

我想将它包含在另一个变量中,这样可以节省一些代码。

这就是我所拥有的:

pageIndicator

这就是我想要的:

Products *productPage0 = [productArray objectAtIndex:0];
Products *productPage1 = [productArray objectAtIndex:1];
Products *productPage2 = [productArray objectAtIndex:2];
Products *productPage3 = [productArray objectAtIndex:3];

有可能吗?

3 个答案:

答案 0 :(得分:1)

预处理器宏怎么样?

#define PRODUCT_PAGE(n) products *productPage##n = [productArray objectAtIndex:n]

使用它像:

PRODUCT_PAGE(0);
PRODUCT_PAGE(1);

(这是非常糟糕的做法,顺便说一下。)

答案 1 :(得分:0)

您可以使用字典存储Products对象,并将名称设置为相应的键。

NSMutableDictionary *dic = [NSMutableDictionary dictionary];

for (int i =0; i < productArray.count; i++) {
    [dic setValue:[productArray objectAtIndex:i] forKey:[@"productPage" stringByAppendingFormat:@"%d",i] ];
}

答案 2 :(得分:0)

只使用productArray

,有4个相似的命名变量有什么好处?

您可以使用productPageX

,而不是使用[productArray objectAtIndex:X]