好了,所以我用arc4random得到一個隨機圖像從一個數組,這樣做的代碼如下:NSRangeException和arc4random
//ray is the array that stores my images
int pic = arc4random() % ray.count;
tileImageView.image = [ray objectAtIndex:pic-1];
NSLog(@"Index of used image: %d", pic-1);
我打電話這段代碼多次,它的工作原理一段時間,但一段時間後,它總是崩潰,因爲這個錯誤的:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** - [__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds [0 .. 39]'
我的問題是,爲什麼這個可笑的大量產生的? arc4random函數有問題嗎?任何幫助將不勝感激
啊,非常感謝你!所以正確的做法是'int pic = arc4random()%(ray.count -1);',否? – kopproduction
@kopproduction:如果你想從數組中返回一個隨機項,你不需要減去任何東西。模數運算符已經確保該索引小於ray.count。 – Chuck
好的,再次感謝,我不知道:) – kopproduction