我从Cocoa自动布局机制得到以下消息: 将NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints设置为YES,以便在发生这种情况时自动调用[NSWindow visualizeConstraints:]。 但我不知道如何“设置NSUserDefault NSConstraintBasedLayoutVisualizeMutuallyExclusiveConstraints为YES”。 我如何设置?
我想打印所有通过NSUserDefaults保存的值而不提供特定的键。 就像使用for循环打印数组中的所有值一样。 有没有办法做到这一点?
我们目前正在使用我们的iPhone应用程序遇到以下奇怪的问题。 正如标题所说, NSUserDefaults正在丢失我们的自定义键和值,当电话重新启动,但没有解锁,这是发生在一个非常具体的情况。 语境: 我们在应用程序中使用NSUserDefaults来存储用户数据(例如用户名)。 我们的应用在背景模式下启用了位置。 我们遇到这个问题,只有通过空中分发或通过Testflight。 如果我使用Xcode将.ipa(相同的分布在空中)拖放到手机中,则不会遇到此问题。 情况:用户安装应用程序,login并成功将用户名存储在NSUserDefaults 。 然后,用户将他们的设备closures并将其重新打开,并让手机静置一段时间,然后解锁屏幕。 问题:如果在这段时间内触发了一个重要的位置变化,应用程序就会在后台运行,但NSUserDefaults是空的(只有一些来自苹果的密钥,但没有我们的自定义密钥)。 然后,无论你做什么, NSUserDefaults不会得到这个键的恢复(例如,如果你解锁你的手机并打开应用程序,你将看到键仍然丢失)。 任何帮助或想法将真正赞赏:)
每当我向plist写入任何东西时,我都使用[[NSUserDefaults standardUserDefaults] synchronize] 。 这是过度杀伤力? 或者是否有这样做的不利影响?
我想为我的NSUserDefault键设置一些初始值,以便应用程序的第一次运行有一些合理的初始设置。 我以为我在应用程序包.plist中运行一个简单的方法来做到这一点,但现在我找不到它。 有任何想法吗?
我试图检查用户是否存在默认值,如下所示: func userAlreadyExist() -> Bool { var userDefaults : NSUserDefaults = NSUserDefaults.standardUserDefaults() if userDefaults.objectForKey(kUSERID) { return true } return false } 但是,即使对象不存在,也不pipe它会一直返回true吗? 这是检查存在的正确方法吗?
在iPhone中永久存储数据通常使用Core Data或sqlite3来完成。 大多数人更喜欢将NSUserDefaults作为应用程序首选项的存储,而不是将其用作普通数据库(如sqlite)。 我发现大量的数据可以存储在NSUserDefaults中,使用起来非常简单,而且速度很快。 那么为什么不把它当作永久存储呢? NSUserDefaults作为数据库的局限性是什么? 更新: 我经常使用三种不同的方法将数据保存到磁盘。 核心数据 将对象序列化为plists NSUserDefaults的 我不再使用FMDB(或直接使用sqlite)。 每种方法的主要优点和缺点是什么? 我遇到的NSUserDefaults的一些优点: sorting,分组等可以很容易地使用NSPredicate来完成。 NSUserDefaults是线程安全的。 它需要一行来获取并保存数据到NSUserDefaults。
我正在使用下面的代码保存一个对象到UserDefaults(以前的NSUserDefaults)使用xcode 8: let defaults = UserDefaults.standard() defaults.set(someObject, forKey: "someObject") print(defaults.object(forKey: "someObject")) someObject是一个字典,我在模拟器上运行。 出于某种原因,这不是保存的价值和“零”打印。 想知道如果这是一个模拟器的问题。
我已经添加NSUserDefault数据检索到我的应用程序,这是相当不错的。 但是为了testing,我想重置所有添加到默认数据库的数据,这样当用户第一次启动应用程序时,所有事情都处于这种状态。 我试图打电话给: [NSUserDefaults resetStandardUserDefaults]; 但是这没有做任何事情。 默认值仍然保存,可以检索。
当用户login到服务时,应该存储令牌的位置是哪个? 我没有保存密码(显然我在哪里使用钥匙串),但只是令牌。 很多地方都说使用NSUserDefaults,但StackOverflow上的一些人似乎对Keychain非常热衷。 是NSUserDefaults罚款?