2016-04-29 7 views
-3

私のコードが検索に適していて、firstnameがオブジェクトの配列であるかどうかを知りたい。 問題がPromotion.swiftのforにあるとします。 ありがとうございました!Swiftのオブジェクトの配列

Main.swift

import Foundation 

let promotion = Promotion() 

let etudiant1 = Etudiant(nom: "Durand", prenom: "Jacques", age: 18, bourse: true, annee: 2015) 
let etudiant2 = Etudiant(nom: "Dupont", prenom: "Jean", age: 19, bourse: false, annee: 2015) 
let etudiant3 = Etudiant(nom: "Duval", prenom: "Robert", age: 18, bourse: true, annee: 2015) 

promotion.ajouterEtudiant(etudiant1) 
promotion.ajouterEtudiant(etudiant2) 
promotion.ajouterEtudiant(etudiant3) 

if promotion.rechercherEtudiant("Dupont", prenom: "Jean") { 
    print("Dupont Jean est bien présent dans cette promotion !") 
} 

Personne.swift

import Foundation 

class Personne { 
    var nom: String 
    var prenom: String 
    var age: Int 

init(nom: String, prenom: String, age: Int) { 
    self.nom = nom 
    self.prenom = prenom 
    self.age = age 
} 

func affiche(nom: String, prenom: String, age: Int) { 
    let ages: String = "vous avez \(age) ans" 
    print("Bonjour " + String(nom) + " " + String(prenom) + ", " + String(ages)) 
} 
} 

Promotion.swift

import Foundation 

class Promotion { 
    var listEtudiants: [Etudiant] = [] 

    func ajouterEtudiant(etudiant: Etudiant) { 
     listEtudiants.append(etudiant) 
    } 

    func rechercherEtudiant(nom: String, prenom: String) -> Bool { 
     var motTrouve: Bool = false 

     for UnEtudiant in listEtudiants { 
      if UnEtudiant.nom == nom { 
       if UnEtudiant.prenom == prenom { 
        motTrouve = true 
       } 
      } 
     } 
     return motTrouve 
    } 

} 

Etudiant.swift

import Foundation 

class Etudiant : Personne { 
    var bourse: Bool 
    var annee: Int 

init(nom: String, prenom: String, age: Int, bourse: Bool, annee: Int) { 
    self.bourse = bourse 
    self.annee = annee 
    super.init(nom: nom, prenom: prenom, age: age) 
} 

override func affiche(nom: String, prenom: String, age: Int) { 
    super.affiche(nom, prenom: prenom, age: age) 

    if(bourse == true) { 
     print("Vous avez la bourse") 
    } else { 
     print("Vous n'avez pas de bourse") 
    } 

    print("Etudiant depuis \(annee)") 
} 
} 
+1

私はあなたが何を求めているのか分かりませんが、おそらくこの行は 'もしUnEtudiant.prenom == nom'ならばこのように見えるはずですif UnEtudiant.prenom == prenom' – redent84

+0

はい、どうもありがとうございます... –

+0

私のコンソールは常時表示されています: (lldb) –

答えて

2

あなただけEtudiantはあなたが行うことができ、リストにあるかどうかを知りたい場合は、次の

func rechercherEtudiant(nom: String, prenom: String) -> Bool { 
    return listEtudiants.contains({ $0.nom == nom && $0.prenom == prenom}) 
} 

あなたが実際にEtudiantのリストを返したい場合(学生を意味している?)あなたはのようなものを検討することもできこの:間違いなく、複数の学生が同じ名前を持つことはできなかったので、私は、代わりに、単一のオブジェクトのリストを返すよどの

func rechercherEtudiant(nom: String, prenom: String) -> [Etudiant] { 
    return listEtudiants.filter({ $0.nom == nom && $0.prenom == prenom }) 
} 

は注意してください。

関連する問題