2017-08-16 2 views
-1

Ich habe eine Klasse für Teams erstellt und möchte 20 Objekte dieser Klasse mit einer for-Schleife erstellen.Verwenden einer for-Schleife zum Erstellen von 20 verschiedenen Objekten

Im Idealfall sollte die Schleife die Teams als Liste "Team0", "Team1", "Team2" erstellen ... etc.

class Team{ 
    //Alphabetical Order Number 
    var num = "0" 

    init(){ 
     print("New team") 
    } 
} 
var Teams = [String]() 
for i in 1...5{ 
    var Team[i] = Team() 
    print(i) 

} 
+1

Sie setzen Teams als ein Array von Strings ... Es hat eine Reihe von Teams, var Teams sein: [Team] = [Mannschaft]() – ishegg

Antwort

0

Ihr Code nicht versucht, Ihre Teams zu dem Array hinzufügen und Es wird nicht versucht, die Eigenschaft num jedes Teams festzulegen.

Sie brauchen etwas wie folgt aus:

var teams = [Team]() 
for i in 1...20 { 
    let team = Team() 
    team.num = "\(i)" 
    teams.append(team) 
} 

Hinweis, wie Variablen mit Kleinbuchstaben beginnen.

Beachten Sie, wie Ihr Array-Typ falsch war. Es muss ein Array von Team sein, kein Array von String.

Beachten Sie, wie Ihre Variablendeklaration Team[i] nicht gültig war.

Sie könnten auch eine init Methode, um Ihre Team Klasse hinzufügen möchten, die eine Anzahl nimmt:

init(_ num: Int) { 
    self.num = "\(num)" 
} 

Dann in der Schleife können Sie ersetzen:

let team = Team() 
    team.num = "\(i)" 

mit nur:

let team = Team(i) 
0

Gegeben

class Team{ 
    let num:Int 

    init(num:Int) { 
     self.num = num 
    } 
} 

Sie schreiben können

let teams = (0..<20).map(Team.init) 

Ergebnis

teams[0].num // 0 
teams[1].num // 1 
teams[2].num // 2 
Verwandte Themen