2017-01-22 138 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