2012-03-12 123 views
0

我是这个领域的初学者,我面临着这样的问题:[NSMutableArray objectAtIndex:]:Index 4 beyond bounds [0 .. 3]。似乎无法找出这个错误。在这方面,任何机构都可以帮助我吗?我附加的代码片段此...索引4超越NSArray的界限

NSMutableArray *my_arrUserinfo = [UserresponcePerser userdesc]; 
NSString *[email protected]""; 
encryptAlgo = [encryptAlgo stringByAppendingString:[[my_arrUserinfo objectAtIndex:9]objectAtIndex:4]]; 

的UserresponcePerser是珀耳塞斯从web服务阵列中的数据元素并且将其存储一个perser。

+1

我投票结束这个过于本地化,因为它对任何人都没有用。数组越界错误对于SO来说太基本了。 – jrturton 2012-03-12 08:27:30

+0

这个问题和答案对我很有用。在我的情况下运行时发生错误,使调试困难。有很少的提示。这个问题证实了一种直觉。 – 2014-02-19 13:08:23

+0

“一个数组超出界限的错误是太基本了,所以不在” - 完全不同意。 – funroll 2014-07-23 21:37:14

回答

1

错误消息意味着您的[my_arrUserinfo objectAtIndex:9]只有3个项目,但您尝试访问第4个对象。

+0

请阅读代码。他正试图从数组中访问第四个对象[my_arrUserinfo objectAtIndex:9]。 – 2012-03-12 08:15:58

+0

这正是费尔南多所说的。 “[由[my_arrUserinfo objectAtIndex:9]调整的阵列只有3个项目,但是你试图振动第4个对象。” – tarmes 2012-03-12 08:24:32

1

这意味着索引4没有项目。对象索引从0开始计数,因此第四个对象将位于索引3,第三个对象位于2,第二个对象位于1,依此类推。

0

检查您的“my_arrUserinfo”包含多少数据。并为“my_arrUserinfo”中的EACH对象检查其数据的计数。在你的错误信息中,你的数组内容似乎无法访问索引x处的对象。

NSLog(@"count my_arrUserinfo = %d", [my_arrUserinfo count]); 

for(int i = 0; i < [my_arrUserinfo count] i++){ 
    NSLog(@"count of objectAtIndex %d inside my_arrUserinfo = %d", i ,[[my_arrUserinfo objectAtIndex:i] count]); 
}