2015-11-13 84 views
0

我有以下代碼。我想創建一些能夠產生某種解決方案的問題對象。快速指向?

這是我的問題對象:

class Question { 

    var question = String() 
    var answers = [String]?() 
    var prevQuestion:Question? 
    var followingQuestions:[Question]? 

    init (question: String, answers: [String]?) { 
     self.question = question 
     self.answers = answers 
    } 

} 

這是功能是應該做的問題數組對象(物體有沒有答案的問題是答案):

func initializeObjects() { 

    for i in 0...(questions.count - 1) { 

     questionObjects.append(Question(question: questions[i], answers: answers[i])) 

    } 

    // Q1 
    questionObjects[1 - 1].prevQuestion = nil 
    questionObjects[1 - 1].followingQuestions = [questionObjects[2 - 1], questionObjects[3 - 1]] 
    // Q2 
    questionObjects[2 - 1].prevQuestion = questionObjects[1 - 1] 
    questionObjects[2 - 1].followingQuestions = [questionObjects[4 - 1], questionObjects[6 - 1]] 
    // Q3 
    questionObjects[3 - 1].prevQuestion = questionObjects[1 - 1] 
    questionObjects[3 - 1].followingQuestions = [questionObjects[5 - 1], questionObjects[8 - 1]] 
    // Q4 
    questionObjects[4 - 1].prevQuestion = questionObjects[2 - 1] 
    questionObjects[4 - 1].followingQuestions = [questionObjects[9 - 1]] 
    // Q5 
    questionObjects[5 - 1].prevQuestion = questionObjects[3 - 1] 
    questionObjects[5 - 1].followingQuestions = [questionObjects[8 - 1], questionObjects[11 - 1]] 
    // Q6 
    questionObjects[6 - 1].prevQuestion = questionObjects[2 - 1] 
    questionObjects[6 - 1].followingQuestions = [questionObjects[16 - 1], questionObjects[7 - 1]] 
    // Q7 
    questionObjects[7 - 1].prevQuestion = questionObjects[6 - 1] 
    questionObjects[7 - 1].followingQuestions = [questionObjects[17 - 1], questionObjects[13 - 1]] 

    // and so on ... 

} // end of initializeObjects() 

但問題是, ,例如在問題#3中,我想把問題#5作爲以下問題之一。但它尚未完全配置。所以我想在這個問題上提出解決方案,以便在其中完成日期數據。有可能做到這一點?或者有另一種方式?非常感謝。

+1

您發佈的代碼究竟發生了什麼問題? –

+0

現在我覺得很蠢。可能沒什麼。我在操場上測試過它,它給了我奇怪的結果,我無法弄清楚什麼是錯誤的,但現在它似乎正常工作。所以請抱歉,謝謝你的意願 – Lachtan

回答

1

我認爲這兩個引用來自「The Swift Programming Language」iBook回答你的問題。 (可免費@iBooks店)

「如果你有C,C++或Objective-C的經驗,你可能知道,這些語言使用指針指到的地址在內存中。迅速常數或變量指的是某個引用類型的實例類似於C中的指針,但不是指向內存中地址的直接指針,也不需要您編寫星號(*)來指示您正在創建引用。 ,這些參考文獻的定義如同夫特任何其他恆定或可變的。」


「結構實例總是按值傳遞,和類實例總是通過引用傳遞。」


所以我覺得你的代碼是確定的,你不需要改變當前的解決方案。

此外,我建議您閱讀該書中的「作業集類型的作業和複製行爲」主題。