我有一个测验应用程序,它基于包含问题和答案组件的结构。用户可以浏览问题。只需从我的问题结构中选择一个新问题并将其显示在屏幕上即可。
我想让用户可以根据需要保存特定问题。 这些保存的问题将显示在名为“保存的视图控制器”的不同视图控制器中。
save UIAction会在屏幕上显示当前问题和答案的字典。
save UIAction然后将当前问题和答案附加到“已保存”视图控制器中的“全局”结构中的数组。这是通过访问dictionary.description来完成的。
save 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。有没有办法可以提取信息,只是将其作为问题和答案的文本?
或者有没有办法将信息放入另一个结构中。因为我想要保存多个问题,可以显示它们。
答案 0 :(得分:2)
听起来你已经得出了正确的结论,你不想存储dic.description
。 (描述方法只是为您提供了一种简单的方法来为最终用户打印对象或值的值。)
你想要Globals.likedArray.append(dic)
。
但是,根据Globals.likedArray
的类型,可能无法按原样编译。如果你创建类型[[String:String]]
(带有字符串键和值的字典数组),那应该会有所帮助。
我们可以在此代码中改进其他一些内容,但请先为您的最终目标取得一些进展。