如何向从 Swfit 中的 NSUserDefaults 检索到的字典添加新键 IOS
How to add a new key to the dictionary that is retrieved from NSUserDefaults in Swfit IOS
HI 下面的代码在我尝试执行时抛出异常。我正在尝试向从 NSUserDefaults 检索到的现有字典添加一个新键。
例如:
var receivedMachineId = "1"
var equipment = [receivedMachineId: ["make" : "receivedMake",
"model" : "receivedModel",
"machineId" : "receivedMachineId",
"notes": "receivedNotes",
"status": "receivedStatus"
]
]
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
if var retrievedDict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") {
var myDict = retrievedDict
print(myDict)
print(myDict["1"]!["make"])
myDict["1"]!["newKey"] = "New Value"
}
- 获取词典。将其存储在变量中。
- 将您的新数据添加到该变量。
- 用变量
覆盖 "equipment" 的条目
示例:
if let dict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") as? Dictionary<String,Dictionary<String,String>> {
var myDict = dict
myDict["new_key"] = "new value"
NSUserDefaults.standardUserDefaults().setObject(myDict, forKey: "equipment")
}
向字典添加另一个值:
dict["newKey"] = "newValue"
将其与 NSUserDefaults 放在一起:
var receivedMachineId = "1"
var equipment = [receivedMachineId: [
"make" : "receivedMake",
"model" : "receivedModel",
"machineId" : "receivedMachineId",
"notes": "receivedNotes",
"status": "receivedStatus"
]
]
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
if var retrievedDict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") {
print(retrievedDict)
equipment[receivedMachineId]!["newKey"] = "newValue"
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
NSUserDefaults().dictionaryForKey("equipment") // show dictionary
}
基本上,您只需将新的 keys/values 添加到字典中,然后将 setObject
(修改后的字典)添加回 NSUserDefaults。
HI 下面的代码在我尝试执行时抛出异常。我正在尝试向从 NSUserDefaults 检索到的现有字典添加一个新键。 例如:
var receivedMachineId = "1"
var equipment = [receivedMachineId: ["make" : "receivedMake",
"model" : "receivedModel",
"machineId" : "receivedMachineId",
"notes": "receivedNotes",
"status": "receivedStatus"
]
]
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
if var retrievedDict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") {
var myDict = retrievedDict
print(myDict)
print(myDict["1"]!["make"])
myDict["1"]!["newKey"] = "New Value"
}
- 获取词典。将其存储在变量中。
- 将您的新数据添加到该变量。
- 用变量 覆盖 "equipment" 的条目
示例:
if let dict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") as? Dictionary<String,Dictionary<String,String>> {
var myDict = dict
myDict["new_key"] = "new value"
NSUserDefaults.standardUserDefaults().setObject(myDict, forKey: "equipment")
}
向字典添加另一个值:
dict["newKey"] = "newValue"
将其与 NSUserDefaults 放在一起:
var receivedMachineId = "1"
var equipment = [receivedMachineId: [
"make" : "receivedMake",
"model" : "receivedModel",
"machineId" : "receivedMachineId",
"notes": "receivedNotes",
"status": "receivedStatus"
]
]
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
if var retrievedDict = NSUserDefaults.standardUserDefaults().dictionaryForKey("equipment") {
print(retrievedDict)
equipment[receivedMachineId]!["newKey"] = "newValue"
NSUserDefaults.standardUserDefaults().setObject(equipment, forKey: "equipment")
NSUserDefaults().dictionaryForKey("equipment") // show dictionary
}
基本上,您只需将新的 keys/values 添加到字典中,然后将 setObject
(修改后的字典)添加回 NSUserDefaults。