0

这是在 Swift 3 中使用 UserDefaults 在 tableView 中保存字典数组的正确方法吗?var arrNotes = [字符串:字符串]

func saveNotesArray () {
    UserDefaults.standard.set(arrNotes, forKey: "notes")
    UserDefaults.standard.synchronize()
}
4

4 回答 4

0

"[String: String]" 表示键和值都是字符串的字典。

"[[String: String]]" 表示包含字典的数组,其中键和值都是字符串。

创建一个字符串字典和一个数组来保存它们

let dictionary: [String: String] = ["keyOne" : "valueOne", "keyTwo": "valueTwo"]
let arrayWithDictionaryOfStrings: [[String: String]] = [dictionary]

将数组添加到 userDefaults

let userDefaults = UserDefaults.standard
userDefaults.set(arrayWithDictionaryOfStrings, forKey: "arrayWithDictionaryOfStrings")

userDefaults.synchronize();

从 userdefaults 中获取字典数组

if let fetchedArrayWithDictionaryOfStrings: [[String: String]] = (userDefaults.object(forKey: "arrayWithDictionaryOfStrings") as? [[String: String]]) {
    // handle fetchedArrayWithDictionaryOfStrings
}
于 2017-01-03T12:09:50.667 回答
0

你应该这样做是 为了节省

let placesData = NSKeyedArchiver.archivedData(withRootObject: placesArray)
UserDefaults.standard.set(arrNotes, forKey: "notes")

从 NSUserDefault 检索数组。

let placesData = UserDefaults.standard.object(forKey: "notes") as? NSData

if let placesData = placesData {
    let arrNotes = NSKeyedUnarchiver.unarchiveObject(with: placesData as Data) as? NSMutableArray
    print(arrNotes)

}

于 2017-01-04T11:00:37.117 回答
0

使用此功能获取您的笔记:

 func saveNotesArray () {
       var notes = UserDefaults.standard.object(forKey: "notes") as?   [String:String]
}

你是否以同样的方式得到对象?

于 2017-01-03T10:49:18.380 回答
-1

在 Swift-3 中,使用 UserDefaults 保存数组的方法如下:

let userDefaults = UserDefaults.standard

userDefaults.set(arrayOfname, forKey:"Keyname")
userDefaults.synchronize()
于 2017-01-03T11:14:29.117 回答