草庐IT

nsuserdefaults

全部标签

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

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

ios - 从 NSUserDefaults 中删除 key 不起作用

我的应用程序中有注销功能。似乎是一个奇怪的问题,它不保存NSUserDefaults。在这里我只是想删除key。但是,如果我在注销后再次打开应用程序,它会发现此key仍在NSUserDefaults中。funcdidLogout(){//Clearuserdataletsettings=NSUserDefaults.standardUserDefaults()settings.removeObjectForKey("userData")settings.synchronize()unregisterForRemoteNotifications()openLoginScreen()}知道

swift - 我可以在 NSUserDefaults 中存储多少数据?

这个问题在这里已经有了答案:IsthereanylimitinstoringvaluesinNSUserDefaults?(10个答案)关闭6年前。我知道NSUserDefaults不适合存储大量数据,但我不知道实际限制是多少。这让我想到......1.是否有推荐的大小限制?2.有没有办法查看我存储的数据大小?在这种情况下,我正在考虑使用NSUserDefaults来存储字符串数组。

Swift presentViewController 完成 block 仅在调试中工作,未在发布中调用

我在Debug和Release中有一个完成block的奇怪行为。例如:sourceViewController.presentViewController(ccVC,animated:true,completion:{()->VoidinNSUserDefaults.standardUserDefaults().setBool(true,forKey:kChromeCastInstructionsShown)NSUserDefaults.standardUserDefaults().synchronize()println("savebolean")})调试中:println("保存b

ios - NSUserDefaults standardUserDefaults 不适用于扩展

我在开发人员门户中将应用程序组添加到我的应用程序ID,并在我的配置文件中使用该应用程序ID。我在Xcode中的产品标识符设置为该应用程序ID。在我的应用委托(delegate)中,我从didFinishLaunchingWithOptions调用它NSUserDefaults.standardUserDefaults().setObject("hey",forKey:"TEST")NSUserDefaults.standardUserDefaults().synchronize()在我的键盘应用程序扩展中,我称之为:iflettest=NSUserDefaults.standardUs

ios - 在 NSUserDefaults 中存储自定义对象时应用程序崩溃

我有一个名为User的自定义类,符合NSCoding协议(protocol)。但是当我试图将它存储在NSUserDefaults中时,我得到了这个错误:Propertylistinvalidforformat:200(propertylistscannotcontainobjectsoftype'CFType')还有这个警告:NSForwarding:warning:object0x7f816a681110ofclass'Shikimori.User'doesnotimplementmethodSignatureForSelector:--troubleaheadUnrecognize

ios - 如何查看用户是否已经进行了应用内购买?确定他们的访问级别/权限

我有一个简单的应用,有一个非消耗性的应用内购买选项。在我的初始ViewController中,我有一个“输入”按钮。此按钮会将“免费”用户(未进行非消费品购买)发送到一个TabBarController“A”和一系列View,并将“付费”用户发送到另一个TabBarController“B”一组不同的View。这些View永远不会相交。我想检查我的代码是否能够有效区分用户是否进行了应用内购买。这是我的代码:importUIKitimportStoreKitclassMainMainViewController:UIViewController,UIScrollViewDelegate,

ios - Swift:不保存 NSUserDefaults.standardUserDefaults 值

我试图在NSUserDefaults中保存键值,但没有被保存。这是我的代码:funcsaveData(){letuserDefaults=NSUserDefaults.standardUserDefaults()userDefaults.setObject("blablabla",forKey:"data")userDefaults.synchronize()}你们知道为什么这个数据没有被保存吗?非常感谢您的帮助。 最佳答案 swift2.x:根据Apple消息来源:publicfuncobjectForKey(defaultNam

arrays - 如何使用 swift 将自定义结构数组保存到 NSUserDefault?

这个问题在这里已经有了答案:SaveStructtoUserDefaults(9个回答)关闭5个月前。我有一个名为“News”的自定义结构,我想将其附加到NSUserDefault的数组中。但它显示错误“类型‘新闻’不符合协议(protocol)‘AnyObject’”。我不想将“新闻”结构更改为一个类,因为它已经被其他代码使用了。无论如何,我可以将NSUserDefaults.standardUserDefaults().arrayForKey("savedNewsArray")类型更改为[News]吗?varsavedNews=NSUserDefaults.standardUser

ios - NSUserDefaults(套件名称 :) on iOS 9 and WatchOS 2 - not working?

我以前做过,但似乎没有任何效果。这是我的代码:在iOS应用中保存letgroupDefaults=NSUserDefaults(suiteName:"group.company.appSharedDefaults")groupDefaults?.setObject(theArray,forKey:"theKey")groupDefaults?.synchronize()阅读(适用于iOS但不适用于WatchOS2)letgroupDefaults=NSUserDefaults(suiteName:"group.company.appSharedDefaults")ifgroupDefa