Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中保存数据_Ios_Swift - Fatal编程技术网

Ios 在Swift中保存数据

Ios 在Swift中保存数据,ios,swift,Ios,Swift,在我的应用程序中,我创建了一个具有两个属性的结构: struct questionCollection { var question: String! var answer: String! } 然后我创建了一个实例: questionCollections = [questionCollection(question: "What is 1+1?", answer: "2")] 除此之外,我还有一个允许用户添加问题的功能: @IBAction func appendQuestion(se

在我的应用程序中,我创建了一个具有两个属性的结构:

struct questionCollection {
var question: String!
var answer: String! 
}
然后我创建了一个实例:

questionCollections = [questionCollection(question: "What is 1+1?", answer: "2")]
除此之外,我还有一个允许用户添加问题的功能:

@IBAction func appendQuestion(sender: AnyObject) {
    questionCollections += [questionCollection(question: questionInput.text, answer: answerInput.text)]
}
我的问题是,保存用户提交的数据最简单的方法是什么?我以前只使用过NSUserDefaults,不知道该怎么办

我真的找不到任何解决问题的方法,所以如果我能得到一些帮助,那就太好了。谢谢

澄清一下:我所要做的就是将数据存储起来,以便显示在标签上,并检查是否选择了正确的答案。用户不需要看到数据,直到它出现在标签中。我也只是创建一个简单的应用程序,所以我只需要将这些数据保存在设备上


就我现在所做的工作而言,我不确定是否需要保存数据,但如果有人想供将来参考,是否仍然可以回答此问题。

您以前是否尝试过使用核心数据?这是苹果默认的持久存储解决方案(在本地保存内容,并在每次加载应用程序时再次显示)。更多信息可以在这里找到

您以前是否尝试过使用核心数据?这是苹果默认的持久存储解决方案(在本地保存内容,并在每次加载应用程序时再次显示)。更多信息可以在这里找到

当前,您的结构可以表示为字典值:

 let dictionary:[String:String] = ["What is 1+1":"2", "What is 2+2": "4"]
您可以将字典存储在NSUserDefault中:

NSUserDefaults.standardUserDefaults().setObject(dictionary, forKey: "aKey")

我想说,这将是您的最佳解决方案…

目前,您的结构可以表示为字典值:

 let dictionary:[String:String] = ["What is 1+1":"2", "What is 2+2": "4"]
您可以将字典存储在NSUserDefault中:

NSUserDefaults.standardUserDefaults().setObject(dictionary, forKey: "aKey")

我想说,在你的情况下,这将是最佳解决方案…

这是一个非常广泛的问题。您可以将内容保存到文件(文本、JSON、XML、属性列表等)、数据库(通过核心数据或直接使用SQLite)、云(通过CloudKit或您自己的服务器)、NSUserDefault,以及可能更多的选项。。。如果没有关于您的数据的更多信息(数据量、更新频率、是否需要在设备之间同步数据、是否需要搜索/筛选/排序等),为您选择数据确实很困难。我的问题现在是否不那么宽泛了?这是一个非常宽泛的问题。您可以将内容保存到文件(文本、JSON、XML、属性列表等)、数据库(通过核心数据或直接使用SQLite)、云(通过CloudKit或您自己的服务器)、NSUserDefault,以及可能更多的选项。。。没有关于数据的更多信息(数据量、更新频率、是否需要在设备之间同步数据、是否需要搜索/筛选/排序等),为你选择一些东西真的很难。现在我的问题是否不那么宽泛了?我正在用选项卡式视图模板构建一个应用程序,因此当你打开应用程序时,我无法选中“使用核心数据”。你知道我如何仍然可以使用核心数据吗?@Pickle2113答案可以在这里找到。祝你好运!希望这是有帮助的。我正在以选项卡式视图模板构建应用程序,因此当您打开应用程序时,我无法选中“使用核心数据”。你知道我如何仍然可以使用核心数据吗?@Pickle2113答案可以在这里找到。祝你好运!希望这是有帮助的。有没有办法查字典的索引?可能是通过将其放入数组?@Pickle2113字典是无序的集合……每个值都与一个唯一的键相关联。也就是说,您可以通过键访问这些值。所以没有索引。但是,是的,你可以制作一个字典数组并将它们存储在用户默认值中。尽管如此,你应该选择什么,就像jcaron已经指出的那样,实际上取决于你的数据以及你打算如何使用它……我的问题现在不那么宽泛了吗?有没有办法访问字典的索引?可能是通过将其放入数组?@Pickle2113字典是无序的集合……每个值都与一个唯一的键相关联。也就是说,您可以通过键访问这些值。所以没有索引。但是,是的,你可以制作一个字典数组并将它们存储在用户默认值中。尽管如此,你应该选择什么,就像jcaron已经指出的那样,实际上取决于你的数据以及你计划如何使用它……我的问题现在是否不那么宽泛了?