2013-03-07 5 views
0

Я пытаюсь запустить мой код, но он всегда останавливается. Может кто-то из вас поможет мне решить проблему. По какой-то причине он не согласится с этим.Objective C error Thread stop running

-(Animal *) getAnimalAt:(int)input { 
    //NSLog(@"show input %ld", input); 
    Animal *ani = [animals objectAtIndex:input]; 
    return ani; 
} 

Я называю этот метод в мой главный по:

for(int i=0;i< count;i++){ 
     Animal *ani = [farm getAnimalAt:i]; 
     NSLog(@"ani : %@",[ani makeSound]); 
     NSLog(@"ani : %@",[ani doFly]); 
    } 

Если вам нужна дополнительная информация или код, пожалуйста, спросите.

Также вы нашли хороший учебник? Кажется, я не нашел его? Или сайт вроде codingbat был бы очень полезен.

+0

Я угадывание животных является массив? Если да, то 'input' меньше количества элементов в« животных » –

+0

ну, основная проблема - это первый метод, который я предполагаю, так как я на нем благородный. Я изменил метод, чтобы всегда возвращать объект по индексу 1, и у меня есть 2 элемента в моем массиве (это действительно NSmutableArray), и все еще код не удался .. У меня нет ошибок только для отладки окна и точки останова – bartvd

+0

Есть ли какая-либо ошибка, напечатанная на консоль, объясняющую проблему? – iain

ответ

1

Если животные всего лишь NSArray, вы можете удалить метод getAnimalAt: и использовать NSArray. Тогда вы могли бы сделать что-то вроде:

for (Animal *ani in animals) { 
    NSLog(@"ani : %@", [ani makeSound]); 
    NSLog(@"ani : %@", [ani doFly]); 
} 

который позволит предотвратить любые проблемы с count быть больше, чем количество элементов в animals

+0

TY нашел проблему и 2 решения, спасибо многому человеку! – bartvd