草庐IT

userDefault

全部标签

ios - 如何在 swift 4 中将 json 数据保存在 userdefaults 上

这是我的模型类classUserRoot:Mappable{varsuccess:Bool!varuser:UserDetails!varerror=""requiredinit?(map:Map){}funcmapping(map:Map){success成功登录后,我想将此数据保存在用户默认值上,这样当用户不必再次提供登录凭据时。这是我的代码classDefault:NSObject{staticfuncsaveToSharedPrefs(user:UserDetails!){letd=UserDefaults.standardifuser!=nil{d.set(Mapper().

swift - 如何检查 userDefault 是否为空?

如果userDefault为空,我试图拒绝访问某个ViewController,但代码似乎不起作用。为了更清楚一点,我将收藏夹列表保存到userDefault。这是我的代码:ifUserDefaults.standard.array(forKey:"favorites")==nil{navigationController?.popToRootViewController(animated:true)return}错误是Indexoutofrange,这意味着整个block都被忽略(此block之后的代码运行并且由于用户默认为空,因此在尝试检索不存在的信息时崩溃)。有趣的是,代码在我第

swift - 检查 NSUserdefaults/UserDefaults 中是否存在 boolean 键的正确方法是什么

以下两个示例中哪个最适合检查NSUserdefaults中是否存在boolean键?1-这可以接受吗?ifNSUserDefaults.standardUserDefaults().boolForKey("myKey"){print("KeyDoesExist")}2-这是首选方式吗?if(NSUserDefaults.standardUserDefaults().objectForKey("myKey")!=nil){print("KeyDoesExist")} 最佳答案 如果您想验证是否为key存储了某些内容,第二个选项就可以了

swift - UserDefaults() 和 UserDefaults.standard 之间的区别

Swift3.0中UserDefaults()和UserDefaults.standard有区别吗? 最佳答案 UserDefaults-为您提供一个新对象,每个对象都分配不同的内存并在对象作用域结束时释放。UserDefaults.standard-通过使用类方法standard为您提供singleton对象,此方法接收的对象在整个过程中分配单个内存应用程序。如果您对此感兴趣,还可以了解它们的用法://SetUserDefaults.standard.set("YOURSTRING",forKey:"key")UserDefaul

swift - 如何使用 UserDefaults registerDefaults()

我到处都找遍了,找不到关于如何使用registerDefaults()的解释。每篇询问如何设置默认值的帖子都会通过“使用registerDefaults()”来回答,我遇到的一个小问题是我不知道如何使用registerDefaults()。谁能告诉我具体要写什么代码以及放在哪里?我的问题:我有5个值(Int),它们需要具有特定的默认值,但稍后可以由用户更改。我已经检查了Xcode文档、youtube和google,找不到答案。 最佳答案 只传递键值对的字典:NSUserDefaults.standardUserDefaults().

swift - 对象之间有什么区别(forKey :) and value(forKey:) in UserDefaults?

我使用letuserDefaults=UserDefaults.standard设置了一些用户默认值,当我检索它们时,我可以使用以下任何一个:jobTextField.text=userDefaults.object(forKey:"job")作为?字符串或者我可以使用jobTextField.text=userDefaults.value(forKey:"job")作为?字符串在什么情况下这会有所不同?很高兴知道我什么时候不能使用其中之一。非常感谢:) 最佳答案 value(forKey:)来自key-valuecoding,而不

swift - 尽管已同步,但 Userdefaults 值不会持续存在?

我正在利用UserDefaults保存一个偶尔需要写入的小值。我相信我已经正确设置了它,但我不确定为什么在我退出模拟器并重新启动它后它不工作。设置:letdefaults=UserDefaults.standard然后写入/修改如下:defaults.set(true,forKey:"defaultsChecker")defaults.synchronize()使用print语句我可以看到该值确实从nil更新为true。但是,在再次打开模拟器(退出后)开始时检查viewDidLoad中的值,如下所示:print("Thevalueisis\((defaults.value(forKey

ios - 使用 NSKeyValueObservation 观察 UserDefaults 中的值

我想使用Swift4中基于block的KVO来观察UserDefaults中值的变化。我能够这样做是为了观察WKWebView的estimatedProgress的关键路径,但由于提供的关键路径,UserDefaults没有成功不是它要找的东西。仅提供一个String是不够的(无法推断出通用参数“Value”),在其前面加上\是不够的(表达式类型在没有更多上下文的情况下不明确)。创建KeyPath以观察UserDefaults中的值的正确方法是什么?observerToken=UserDefaults.standard.observe("myvalue"){(object,change

ios - UserDefaults 不使用 Swift 保存

我正在尝试使用UserDefaults持久保存一个bool值。这是我的代码:publicstaticvarisOffline=UserDefaults.standard.bool(forKey:"isOffline"){didSet{print("SavingisOfflineflagwhichisnow\(isOffline)")UserDefaults.standard.set(isOffline,forKey:"isOffline")UserDefaults.standard.synchronize()}}为什么不起作用?这段代码有什么问题?问题是,当我尝试从UserDefaul

ios - UserDefaults 不使用 Swift 保存

我正在尝试使用UserDefaults持久保存一个bool值。这是我的代码:publicstaticvarisOffline=UserDefaults.standard.bool(forKey:"isOffline"){didSet{print("SavingisOfflineflagwhichisnow\(isOffline)")UserDefaults.standard.set(isOffline,forKey:"isOffline")UserDefaults.standard.synchronize()}}为什么不起作用?这段代码有什么问题?问题是,当我尝试从UserDefaul