我想做一些非常简单的事情,但是我得到了一个错误,我错过了什么?
int i;
int count;
TutorialAppDelegate *appDelegate = (TutorialAppDelegate *)[[UIApplication sharedApplication] delegate];
Animals *aAnimal = (Animals *)[appDelegate.animals objectAtIndex:i];
count = [animals count];
if (i < count)
{
NSLog(@"%@",aAnimal.animalName);
}
ERROR:
'*** -[NSMutableArray objectAtIndex:]: index 22510243 beyond bounds [0 .. 5]'
0 ... 5是正确的!数组中只有6个值。
并使用
NSLog(@"%@",aAnimal.animalName);
out if if函数返回正确的值,当我也将i更改为0时。
答案 0 :(得分:5)
你需要初始化我。
int i = 0;
默认情况下,int不会设置为零或任何合理的值。您可以通过添加以下行来检查:
NSLog(@"Value of i without initialising is: %d", i);
答案 1 :(得分:0)
请初始化您的可变数组 -
appDelegate.animals=[[NSMutableArray alloc] initWithArray:(NSArray *)array];
并检查你的数组,你在数组元素的末尾提到了nil对象 -
NSMutableArray* animals=[[NSMutableArray alloc]
initWithObjects:@"one 1",@"two 2",nil];