Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.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 缓存用户配置文件_Ios_Core Data_Swift3 - Fatal编程技术网

Ios 缓存用户配置文件

Ios 缓存用户配置文件,ios,core-data,swift3,Ios,Core Data,Swift3,我有一个类似如下的结构: Struct User { let name: String? let address: String? init(name: String, address:String) { self.name = name self.address = address } } 我正在尝试缓存用户配置文件,但我怀疑最好的方法是什么 我上面给出的struct示例是我的real struck的一个较小的尺寸,它也

我有一个类似如下的结构:

Struct User {
    let name: String?
    let address: String?

    init(name: String, address:String) {
         self.name = name
         self.address = address
    }
 }
我正在尝试缓存用户配置文件,但我怀疑最好的方法是什么

我上面给出的struct示例是我的real struck的一个较小的尺寸,它也包含了配置文件图片

我已经在[UserDefaults]中缓存了一些有用的东西,但我想知道是否应该在UserDefaults或CoreData中缓存用户配置文件

如果您认为UserDefaults是最好的方法,那么如何将该类类型存储到其中?我可以存储简单的布尔值等等,但是我如何才能像上面那样保存一个结构,然后正确地获取它的数据呢

self.cacheUser = User(name: "Ivan", address: "EUA")
如何将[cacheUser]缓存到[NSUserDefaults]中


谢谢

您可以使用
NSKeyedArchiver
归档对象,然后使用
nskeyedNarchiver
取消归档对象,但它必须符合
NSCopying
协议

如果对象更广泛、更复杂,还可以使用
CoreData
保存对象

如果类中没有太多变量,只需将变量名称和值放入字典中,并将字典保存为用户默认值。然后,您可以获取它们并使用保存在用户默认值中的字典值重建对象。但我只会在对象非常简单的情况下(例如,一个包含两个int和/或字符串的类)才这样做


最后,我建议使用
CoreData
来持久化定制对象。因为,随着类开始变得越来越复杂,
CoreData
将为您提供更好的性能和更快的可访问性。

谢谢。是的,我肯定会选择CoreData。谢谢你的意见