2017-11-03 4 views
2
class Question { 
    var type: QuestionType 
    var query: String 
    var answer: String 

    init(type: QuestionType, query: String, answer: String) { 
     self.type = type 
     self.query = query 
     self.answer = answer 
    } 
} 


enum QuestionType: String { 
    case trueFalse = "The sky is blue." 
    case multipleChoice = "Who is the ugliest Beatle: John, Paul, George or Ringo?" 
    case shortAnswer = "What is the capital of Oregon?" 
    case essay = "In 50 words, explain moleceular fusion" 

    static let types = [trueFalse, multipleChoice, shortAnswerm, essay] 
} 

enum AnswerType: String { 
    case trueFalse = "true" 
    case multipleChoice = "Sgt. Pepper" 
    case shortAnswer = "Salem" 
    case essay = "Molecular fusion happens when a daddy molecule and a mommy molecule love each other very much" 

    static let types = [trueFalse, multipleChoice, shortAnswerm, essay] 
} 


protocol QuestionGenerator { 
    func generateRandomQuestion() -> Question 
} 

class Quiz: QuestionGenerator { 
    func generateRandomQuestion() -> Question { 
     let randomNumeral = Int(arc4random_uniform(4)) 
     let randomType = QuestionType.types[randomNumeral] 
     let randomQuery = randomType.rawValue 
     let randomAnswer = AnswerType.types[randomNumeral].rawValue 
     let randomQuestion = Question(type: randomType, query: randomQuery, answer: randomAnswer) 
     return randomQuestion 
    } 
} 

, wenn ich die Maus über lassen randomAnswer = AnswerType.types [randomNumeral] .rawValue sehe ich eine popover des Fehlertyp zeigt. Ich verstehe nicht, warum Playground denkt, dass es einen Fehler gibtWarum ist mein Enum sagen "Errortype"

+3

Ich kopiere deinen Code in den Spielplatz und der einzige Fehler, den ich sehe, ist das Zeichen 'm' am Ende von 'shortAnswerm' in 'statische Let-Typen' für beide deiner enum. Ansonsten ist alles in Ordnung. –

+1

Danke. Schreibe es als Antwort und ich werde es richtig markieren. Vielen Dank –

Antwort

2

Ich kopiere Ihren Code in Spielplatz und der einzige Fehler, den ich sehe, ist das Zeichen 'm' am Ende von 'shortAnswerm' in 'statische Let-Typen' für beide von deiner enum. Ansonsten ist alles in Ordnung