Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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_Swift3_Local Storage - Fatal编程技术网

Ios 在Swift中存储数据的最有效方法

Ios 在Swift中存储数据的最有效方法,ios,swift,swift3,local-storage,Ios,Swift,Swift3,Local Storage,我目前正在从事Swift项目,我希望以以下方式保存永久用户数据: 用户名 -字符串列表(字符串数组) 这样,当我搜索用户名时,我要么得到一个nil返回(如果用户名不存在),要么得到一个我可以迭代的字符串列表。我知道一些保存用户数据的方法,但是,由于我是Swift新手,我不知道所有永久保存用户数据的方法。我也不知道哪一个最适合我的需要。像这样的 let people: [String: [String]] = ["Jim": ["bread", "fruit", "meat"],

我目前正在从事Swift项目,我希望以以下方式保存永久用户数据:

用户名 -字符串列表(字符串数组)

这样,当我搜索用户名时,我要么得到一个nil返回(如果用户名不存在),要么得到一个我可以迭代的字符串列表。我知道一些保存用户数据的方法,但是,由于我是Swift新手,我不知道所有永久保存用户数据的方法。我也不知道哪一个最适合我的需要。

像这样的

let people: [String: [String]] = ["Jim": ["bread", "fruit", "meat"],
              "Alan": ["pears", "peas", "turnip"],
              "Sue": ["cabbage", "rice", "bblueberries"]]

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last!
let fileUrl = documentsUrl.appendingPathComponent("myfile")

(people as NSDictionary).write(to: fileUrl, atomically: true)
然后

let people = NSDictionary(contentsOf: fileUrl) as! [String: [String]]
对于系统URL

NSDictionary
… 像这样的事情

let people: [String: [String]] = ["Jim": ["bread", "fruit", "meat"],
              "Alan": ["pears", "peas", "turnip"],
              "Sue": ["cabbage", "rice", "bblueberries"]]

let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: FileManager.SearchPathDomainMask.userDomainMask).last!
let fileUrl = documentsUrl.appendingPathComponent("myfile")

(people as NSDictionary).write(to: fileUrl, atomically: true)
然后

let people = NSDictionary(contentsOf: fileUrl) as! [String: [String]]
对于系统URL

NSDictionary

任何特定方法的效率至少部分取决于体积。这里我们讨论的是多少个用户名?将有多少数据与每个关联?@BobWakefield可能有1-5个用户名,字符串arrayiOS或macOS上有8-35个字符串?无论哪种方式,都有常用的选项-SQLite、核心数据、plist文件或其他二进制文件。@rmaddy它在iOS中。我能把数据存储在这些地方吗?类似于与字符串数组关联的字符串。@AshleyMills这是plist的来源。任何特定方法的效率至少部分取决于体积。这里我们讨论的是多少个用户名?将有多少数据与每个关联?@BobWakefield可能有1-5个用户名,字符串arrayiOS或macOS上有8-35个字符串?无论哪种方式,都有常用的选项-SQLite、核心数据、plist文件或其他二进制文件。@rmaddy它在iOS中。我能把数据存储在这些地方吗?类似于与字符串数组关联的字符串。@AshleyMills这是plist的来源。这是永久保存的吗?URL的示例是什么?你怎么能循环浏览这本词典?我是否可以自动将数据对设置/接收到函数中?例如,setValues(username,stringarray)和getArray(username)。是的,这是永久保存的。在答案中添加了一些URL详细信息,您将不得不亲自尝试其中一些内容。写一些代码,而不是问更多的问题,如果你有问题。这是永久保存吗?URL的示例是什么?你怎么能循环浏览这本词典?我是否可以自动将数据对设置/接收到函数中?例如,setValues(username,stringarray)和getArray(username)。是的,这是永久保存的。在答案中添加了一些URL详细信息,您将不得不亲自尝试其中一些内容。写一些代码,而不是问更多的问题,如果你有问题。