Ich erhalte den Fehler, "Thread 1: EXC_BAD_INSTRUCTION (code = EXC_1386_INVOP, Subcode = 0x0)" wenn sie versuchen, zufällige Array-Elemente in ein neues Array anzuhängen.Swift: Erste EXC_BAD_INSTRUCTION wenn sie versuchen, zufällige Array-Elemente anhängen
Die Debug-Protokoll sagt "fatale Fehler: Index außerhalb des zulässigen Bereichs"
//If there are more than 6 players prioritizing the event, make a random choice. garudaLocations is an array containing the players who prioritized the event "Garuda".
if garudaLocations.count > 6 {
var finalGarudaPlayers : [Int] = []
let getRandom = randomSequenceGenerator(1, max: garudaLocations.count) //Tell RNG how many numbers it has to pick from.
var randomGarudaPrioritiesIndex = Int()
for _ in 1...6 {
randomGarudaPrioritiesIndex = getRandom() //Generate a random number.
finalGarudaPlayers.append(garudaLocations[randomGarudaPrioritiesIndex]) //ERROR: Thread 1: EXC_BAD_INSTRUCTION(code=EXC_1386_INVOP, subcode=0x0)
}
debugPrint(finalGarudaPlayers) //Print array with the final priority Garuda members.
randomSequenceGenerator is a function I got from here, die Arbeit macht, um die Zufallszahl zu erzeugen.
func randomSequenceGenerator(min: Int, max: Int) ->() -> Int {
var numbers: [Int] = []
return {
if numbers.count == 0 {
numbers = Array(min ... max)
}
let index = Int(arc4random_uniform(UInt32(numbers.count)))
return numbers.removeAtIndex(index)
}
}
Um ein besseres Verständnis zu bekommen, ich versuche, ein Stück von einem „Team making“ Programm, in dem die Spieler in Veranstaltungen sortiert werden automatisch zu schreiben, aber sie können, welche Ereignisse wählen sie priorisieren möchten.
kann ich nur 6 Personen pro Veranstaltung jedoch so das Ziel, die bestehenden garudaLocations Array zu nehmen ist, wählen Sie einen zufälligen 6 Index Standorte, und wird der Rest der Spieler zu befreien.
Ich bekomme den Fehler erst, nachdem ich mehr als 6 Spieler zum selben Ereignis einreiche.
Jede Hilfe wird sehr geschätzt!
garudaLocations ist das Array, das die Spieler enthält, die das Ereignis als Priorität ausgewählt haben. randomGarudaPrioritiesIndex ist eine Variable, die eine Zufallszahl enthält (die mit der randomSequenceGenerator-Funktion generiert wird). Normalerweise, um ein * spezifisches * Index-Element aufzulisten, würden Sie (Array [X]) verwenden, um beispielsweise das Element X im Array aufzulisten. Ich dachte, ich könnte den Zufallsgenerator an der Stelle der 0 verwenden, um ein * zufälliges * Array-Element zu finden. Ist das nicht der Fall? –
und wenn ich debugPrint (randomGarudaPrioritiesIndex) bekomme ich 6 zufällige Ganzzahlen, wie erwartet (nicht in einem Array). –
All das ist großartig. Aber es scheint irrelevant zu sein; Die Frage ist, ob eine dieser zufälligen Integer im Ausdruck "garudaLocations [randomGarudaPrioritiesIndex]" zulässig ist. Klar ist es manchmal nicht. – matt