I am trying to randomise a set of meals (currently 5) such an array of meal objects that I've created which have a property mealTitles. I press randomise, using code:
func shuffleArray<T>(array: Array<T>) -> Array<T>
{
var array = array
for index in ((0 + 1)...array.count - 1).reversed()
{
// Random int from 0 to index-1
let j = Int(arc4random_uniform(UInt32(index-1)))
// Swap two array elements
// Notice '&' required as swap uses 'inout' parameters
swap(&array[index], &array[j])
}
return array
}
I use a shuffle button and look at if it is shuffling Such:
@IBAction func shuffleButton(_ sender: AnyObject) {
shuffleArray(array: myMeals) print("Objects: (shuffleArray(array: myMeals))") print(myMeals[0].mealTitle, myMeals[1].mealTitle, myMeals[2].mealTitle)
}
This code produces in the console this:
Objects: [<ParseStarterProject_Swift.Meal: 0x6080002747c0>, <ParseStarterProject_Swift.Meal: 0x60800026ea40>, <ParseStarterProject_Swift.Meal: 0x60000027b400>, <ParseStarterProject_Swift.Meal: 0x60000026d980>, <ParseStarterProject_Swift.Meal: 0x608000267d80>]
Sausages and Mash Chicken Korma Fajitas
Objects: [<ParseStarterProject_Swift.Meal: 0x60000027b400>, <ParseStarterProject_Swift.Meal: 0x60800026ea40>, <ParseStarterProject_Swift.Meal: 0x60000026d980>, <ParseStarterProject_Swift.Meal: 0x6080002747c0>, <ParseStarterProject_Swift.Meal: 0x608000267d80>]
Sausages and Mash Chicken Korma Fajitas
I.e it looks like the location is changing but the meal Title stay the same.
Any help would be much appreciated.
Aucun commentaire:
Enregistrer un commentaire