首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSMutableArray对象索引总是显示最后一个对象

NSMutableArray对象索引总是显示最后一个对象
EN

Stack Overflow用户
提问于 2012-09-07 19:11:23
回答 1查看 219关注 0票数 0

我的问题是我的NSMutableArray总是得到objectatindex-method的最后一个元素。

我有一个数组,其中包含一些从UIViewController派生的类。我想一个接一个地显示视图。

首先,我填充数组:

代码语言:javascript
复制
ContactViewController *ContactView = [[ContactViewController alloc]init];
QuestionViewController *QuesView = [[QuestionViewController alloc]init];;
ContactView.mydelegate = self;
[QuesView setDelegate:self];


[Views addObject:ContactView];

Views =[[NSMutableArray alloc]initWithCapacity:11];
for (int i = 0; i < 11; i++) {
    [QuesView setParam:@"text" :i ];
    [Views addObject:QuesView];
}

在那之后,我想获得实际的视图并跳到下一个,就像这样:

代码语言:javascript
复制
-(IBAction)Button:(id)sender
{

    UIViewController *newView = [[UIViewController alloc]init];
    newView =  (UIViewController*)[Views objectAtIndex:enumerator];
    [self presentViewController:newView animated:YES completion: nil];
    enumerator++;
     //dismiss old view here....

    NSLog(@"number %d",[newView getNumber]);
}

新视图不会显示,日志中的数字始终是阵列的最后一个数字。我尝试使用for循环遍历"Views“中的所有元素,但每个对象中总是有最后一个数字……

有什么提示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-07 20:47:08

您可能希望创建多个QuestionViewController实例。但实际上您只创建了一个对象,并对其调用了11次setParam。

这一行的[Views addObject:ContactView]也没有效果,因为您创建了一个新的数组对象,并将其分配给下一行的视图。UIViewController *newView = [[UIViewController alloc]init]也是如此。希望你使用的是ARC,否则会造成内存泄漏!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12316959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档