我有一個14個字符串的數組。我想將這14個字符串中的每一個顯示給用戶而不重複。最近我得到的是創建一個整數數組和洗牌它們的值,然後使用從int數組的索引號的一個字符串數組閱讀:從數組中讀取隨機值
//appDelegate.randomRiddles is an array of integers that has integer values randomly
appDelegate.randomRiddlesCounter++;
NSNumber *index=[appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
int i = [index intValue];
while(i>[appDelegate.currentRiddlesContent count]){
appDelegate.randomRiddlesCounter++;
index=[appDelegate.randomRiddles objectAtIndex:appDelegate.randomRiddlesCounter];
i = [index intValue];
}
hintText.text = [[appDelegate.currentRiddlesContent objectAtIndex:i] objectForKey:@"hint"];
questionText.text = [[appDelegate.currentRiddlesContent objectAtIndex:i] objectForKey:@"question"];
但我的方式導致崩潰和重複。哦,每次我從字符串數組中讀取一個值時,該字符串將從數組中移除,從而使其計數減1。
但是會不會導致重複? – Snowman
@Mohabitar,如果每次獲得一個,都不會將該對象從數組中移除。 –
不應該是'arc4random()%[myArray count]'給出的數字從0到count-1?否則,最後一個元素將保持最後一個元素,如果count = 1,則會執行'arc4random()%0',這不正確。如果你想從數組中刪除項目,你可以這樣說或發佈代碼。 –