无法让NSEnumerator显示我的数组中的下一个项目

时间:2011-09-27 19:19:25

标签: xcode4 nsarray nsenumerator

我是Objective-C的新手,我已经在网上进行了数周的研究。几乎每个例子在每个网站上都是相同的,并没有完全告诉我如何将它集成到我的Xcode 4应用程序的代码中。

到处看到的例子是:

NSEnumerator* theEnum = [some_array objectEnumerator]; id obj; or id some_object = NULL; while(obj = [theEnum nextObject]) { //do something...

我想如果我更好地理解了什么是id some_object = NULL; / id obj;代表我可以自己搞清楚。

在我的代码中,我有三个数组。我希望每次用户单击“下一步”按钮时,都能在UILabel字段中的每个数组中显示一个对象,直到所有这些对象都显示出来。

NSArray1 = 1,2,3

NSArray2 = John,Jill,Josh NSArray3 =男孩,女孩,男孩

当按下下一个按钮时,你会看到1,John和男孩。下次你会看到2,Jill和女孩,最后是3,Josh和男孩。

以下是基本示例,而不是我的实际代码。

number = [[NSArray alloc] initWithObjects:@"1",@"2",@"3", nil];
name = [[NSArray alloc] initWithObjects:@"John",@"Jill",@"Josh", nil];
gender = [[NSArray alloc] initWithObjects:@"boy",@"girl",@"boy", nil];

NSEnumerator *enum = [number objectEnumerator];
id obj; (??What is this?? And how to connect to the statement below??)

while ((obj = [enumNumber nextObject])) {

self.numberItem.text = ??
self.nameItem.text = ??
self.genderItem.text = ??

由于

1 个答案:

答案 0 :(得分:0)

id obj只是包含您正在查看的当前变量的变量。在此代码中,由于您的NSArray都包含字符串,因此您可以使用NSString *obj代替。

枚举器一次只能枚举一个集合。如果要将所有这三个循环遍历,请使用传统的for循环:

for(unsigned int i = 0; i < number.count; i++) {
    self.numberItem.text = [number objectAtIndex:i];
    self.nameItem.text = [name objectAtIndex:i];
    self.genderItem.text = [gender objectAtIndex:i];
}