在 Swift 中将结构转换为 NSUserDefaults?
Casting struct to NSUserDefaults in Swift?
有什么方法可以将这个 Swift 数据集以某种方式转换为 NSUserDefauts
可接受的形式?即 NSObject
NSSet
? (p.s。我知道 NSUserDefaults
不适用于此类数据,但我只是在测试)
struct Users {
var name: String = ""
var stores: [Store]
}
struct Store {
var name: String = ""
var clothingSizes = [String : String]()
}
init() {
let userDefaults = NSUserDefaults.standardUserDefaults()
if let usersPeople = userDefaults.valueForKey("Users") as?
我不知道这是最好的方法,但你可以试试这个。
struct Users {
var name: String = ""
var stores: [Store]
}
struct Store {
var name: String = ""
var clothingSizes = [String : String]()
}
var Advert = [Users]()
init() {
NSUserDefaults.standardUserDefaults().setObject(Advert[0].name, forKey: "NameYouWant")
}
我想你可以使用字典。您需要制作方法将数据包装到结构中,反之亦然。
例如:
var users : [String: AnyObject]()
users["name"] = "SomeName"
users["stores"] = yourStoreArray
NSUserDefaults.standardUserDefaults().setObject(users, forKey: "Users")
类似的东西。
而当你需要获取结构时
if let myDictionaryFromUD = userDefaults.objectForKey("Users") as? [String:AnyObject]{
self.users = Users(myDictionaryFromUD["name"], stores: myDictionaryFromUD["stores"] as! [Store])
}
我还假设您将保存到用户的 userDefaults 数组。在这种情况下,您将保存 [[String: AnyObject]]
,但机制相同。
有什么方法可以将这个 Swift 数据集以某种方式转换为 NSUserDefauts
可接受的形式?即 NSObject
NSSet
? (p.s。我知道 NSUserDefaults
不适用于此类数据,但我只是在测试)
struct Users {
var name: String = ""
var stores: [Store]
}
struct Store {
var name: String = ""
var clothingSizes = [String : String]()
}
init() {
let userDefaults = NSUserDefaults.standardUserDefaults()
if let usersPeople = userDefaults.valueForKey("Users") as?
我不知道这是最好的方法,但你可以试试这个。
struct Users {
var name: String = ""
var stores: [Store]
}
struct Store {
var name: String = ""
var clothingSizes = [String : String]()
}
var Advert = [Users]()
init() {
NSUserDefaults.standardUserDefaults().setObject(Advert[0].name, forKey: "NameYouWant")
}
我想你可以使用字典。您需要制作方法将数据包装到结构中,反之亦然。
例如:
var users : [String: AnyObject]()
users["name"] = "SomeName"
users["stores"] = yourStoreArray
NSUserDefaults.standardUserDefaults().setObject(users, forKey: "Users")
类似的东西。
而当你需要获取结构时
if let myDictionaryFromUD = userDefaults.objectForKey("Users") as? [String:AnyObject]{
self.users = Users(myDictionaryFromUD["name"], stores: myDictionaryFromUD["stores"] as! [Store])
}
我还假设您将保存到用户的 userDefaults 数组。在这种情况下,您将保存 [[String: AnyObject]]
,但机制相同。