Ios 在Swift中将结构强制转换为NSUserDefaults?
是否有一种方法可以将此Swift数据集以某种方式转换为NSUserDefauts可接受的形式?i、 e.NSSet对象?p、 我知道NSUserDefaults不适用于这种类型的数据,但我只是在测试Ios 在Swift中将结构强制转换为NSUserDefaults?,ios,swift,struct,nsuserdefaults,Ios,Swift,Struct,Nsuserdefaults,是否有一种方法可以将此Swift数据集以某种方式转换为NSUserDefauts可接受的形式?i、 e.NSSet对象?p、 我知道NSUserDefaults不适用于这种类型的数据,但我只是在测试 struct Users { var name: String = "" var stores: [Store] } struct Store { var name: String = "" var clothing
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")
}
我想你可以用字典。您需要创建方法将数据包装到struct,反之亦然 例如:
var users : [String: AnyObject]()
users["name"] = "SomeName"
users["stores"] = yourStoreArray
NSUserDefaults.standardUserDefaults().setObject(users, forKey: "Users")
差不多吧
当您需要获取struct时
if let myDictionaryFromUD = userDefaults.objectForKey("Users") as? [String:AnyObject]{
self.users = Users(myDictionaryFromUD["name"], stores: myDictionaryFromUD["stores"] as! [Store])
}
我还假设您将保存到userDefaults用户数组。在这种情况下,您将保存[[String:AnyObject]],但机制相同。非常确定您的存储在Swift::中的类型有限,但问题是关于强制转换的,对吗?是的,我看到的示例总是在NSUserDefaults Core Data中存储数组或数组数组……我的数据结构,尤其是存储对象,是一个与字典数组关联的字符串,我不知道如何在非Swift API(如NSUserDefults)中存储该字符串。@PSUSabes但是,NSUserDefaults有Swift API。您需要保存然后读取数据,对吗?然后您只需要使用setObject:forKey:进行设置,使用objectForKey进行读取。请看我的答案并试一试。谢谢@flinth,但我发现NSUSerDefaults没有名为setDictionarystores的成员,但它不仅仅是一个数组,它还包含一个嵌套字典?@PSUSabes在我的示例存储中是一个数组。我的示例基于您的问题,在您的案例中,stores是Store struct的数组。它也可以是字典。