objective-c:使用数组指向另一个数组

时间:2014-11-11 10:56:52

标签: ios nsmutablearray nsindexpath

我有两个Mutable数组。 “friendsArray”包含整个列表os用户,“inviteIndex”包含其中一些索引(indexPath.row)(使用uiswitch按钮进入表列表)。

我将inviteIndex数组填充为:

[inviteIndex addObject:[NSNumber numberWithInteger:indexPath.row]];

为了只选择我选择的用户:

  for (int i =0; i< [inviteIndex count]; i++) {

        MyElement  *friend =[friendsArray objectAtIndex:[inviteIndex objectAtIndex:i] ];

        NSLog(@"BUTTON PRESSED %@", friend.friendId);

    }

但应用程序崩溃并显示消息:

[__NSArrayM objectAtIndex:]: index 400931632 beyond bounds [0 .. 4]'

我试过用过   MyElement *friend =[friendsArray objectAtIndex:(NSInteger)[inviteIndex objectAtIndex:i] ];  结果相同。

请帮忙吗? 提前谢谢。

2 个答案:

答案 0 :(得分:1)

[inviteIndex objectAtIndex:i]将返回NSNumber个对象。您希望<{1}}对象中的NSInteger

NSNumber

答案 1 :(得分:0)

  

索引超出界限当您尝试访问对象时会出现此错误       来自数组中不存在的索引。

在您的情况下,似乎friendArray的计数是&lt; (小于)inviteIndex计数。

我认为问题出在这个逻辑的某个地方,[inviteIndex addObject:[NSNumber numberWithInteger:indexPath.row]];

检查inviteIndex的计数。