-(IBAction)someMethod:(UIStepper *)sender{
int x=sender.value; //This is an integer from 0-8;
NSLog(@"%f",sender.value);
NSArray *rpmValues = [[NSArray alloc]initWithObjects:@"a",@"b",@"c",@"d",@"e",@"f",@"g",@"h",@"i", nil];
if (x<=[rpmValues count]) {
myLabel.text = [rpmValues objectAtIndex:x];
}
NSLog(@"%i",[rpmValues count]);
}
上面是我的代碼,我想要做的是通過更改UIStepper來更改UILabel顯示。這非常簡單。但當我改變按步進值,它崩潰:NSArray索引1超出空陣列的界限
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** - [__NSArrayM objectAtIndex:]: index 1 beyond bounds for empty array'
*** First throw call stack:
而且[rpmValue計數]是9.我真的很困惑。誰能幫我?
除了'if'語句需要使用'<'而不是'<='外,這段代碼看起來沒問題。您是否100%確定錯誤來自此代碼而不是其他地方? – rmaddy
將'int x'手動設置爲1似乎適用於我,你能試試嗎?你的NSLog語句是錯誤的,'NSLog(@「%d」,sender.value);'print?其他的東西一定會導致問題。 – WDUK
問題是當x = [rpmValues count]時。在索引中獲取對象不起作用,因爲索引從0開始。 – jajo87