2017-01-22 141 views
-1

我有一個基於包含問題和答案組件的結構的測驗應用程序。用戶可以輕鬆瀏覽問題。只需從我的問題結構中選擇一個新問題並將其顯示在屏幕上即可完成。從dictionary.description中提取信息?

我想擁有它,用戶可以根據需要保存具體問題。 這些保存的問題將顯示在名爲「保存的視圖」控制器的不同視圖控制器中。

保存UIAction創建一個當前問題和答案的字典在屏幕上看到。

保存UIAction然後將當前問題和答案追加到保存的視圖控制器中全局結構中的數組。這是通過訪問dictionary.description完成的。

保存UIAction然後通過使用NSUserDefaults保存已放入保存的視圖控制器中的數組。

@IBAction func save(sender: AnyObject) { 

    //Creating dictionary of current Question and Answer 
    let dic = ["Question": Questions[qNumber].question, "Answer": Questions[qNumber].answers] 

    //appending the selected question to the likedArray in the saved view controller 
    Globals.likedArray.append(dic.description) 

    //saving what has been entered into the likedArray for key "saved array" 
    NSUserDefaults.standardUserDefaults().setObject(Globals.likedArray, forKey: "SavedArray") 

} 

我的問題是,當我訪問保存的問題,在我保存視圖控制器接聽和屏幕上顯示出來,它出來額外的支架和不只是問題和答案的文字。

我相信這是因爲我把它保存爲dictionary.description。有沒有一種方法可以提取信息並將其作爲問題和答案的文本?

或者有沒有一種方法可以將信息放入另一個結構中。因爲我想保存多個問題的可能性顯示他們。

回答

2

這聽起來像你已經達到了正確的結論,你不想存儲dic.description。 (描述方法僅在那裏給你一個簡單的方法來打印最終用戶的對象或值的值。)

你想要Globals.likedArray.append(dic)

但是,根據Globals.likedArray的類型,可能無法按原樣編譯。如果您製作[[String:String]](字符串鍵和值的字典數組)類型,那應該有所幫助。

在這段代碼中我們還可以改進其他一些東西,但讓我們先爲您的最終目標取得一些進展。

+1

感謝您的回覆David。我一整天都用這個拉出頭髮。我已經將likeArray設置爲'[[String:String]]'這樣做:'static var likedArray:[String!] = [「」]]。儘管如此,它一直無濟於事。即使我設置附加到'Globals.likedArray.append(String(dic))'。非常堅持這個問題:( – pete800

+0

從您的評論中的代碼,它看起來像你沒有更新的類型,請嘗試:'靜態var likedArray:[[String:String]] = []'和'Globals.likedArray。 append(dic)' –

+0

很酷,我把它改成了'static var likedArray:[[String:String]] = []',但是出現一個錯誤,說「無法將[String:String!]類型的值轉換爲優先參數類型[字符串:字符串]「的代碼行'Globals.likedArray.append(dic)' – pete800