Tag: nsuserdefaults

删除所有以某个词开头的NSUserDefaults

有没有办法让我“走”通过我的iPhone应用程序中的所有NSUserDefault列表,只删除某些? 例如,我想要获得以某个单词开始的所有关键名称。 像这样的东西: [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"Dog*"];

iPhone – 在计算机上存储的文件在哪里?

在iPhone上运行应用程序(例如,当您可以通过另一种方式testing某些GPS或相机function时),我可以在哪里find并检查由NSUserDefaults创build的文件以保存standardUserDefaults? 我正在运行XCode 4。

为什么使用registerDefaults:而不是setValue:forKey:?

当我为我的应用程序设置默认首选项时,我正在执行以下操作: 1)从Settings.bundle读取Root.plist到一个字典中。 2)我testing是否设置了首选项,如果没有,我通过[NSUserDefaults standardUserDefaults] registerDefaults:]注册我的默认字典[NSUserDefaults standardUserDefaults] registerDefaults:] 问题是,使用registerDefaults:默认值registerDefaults:不要去持久性存储,所以如果用户不改变他们的首选项,我正在阅读我的默认首选项,并每次启动应用程序注册NSUserDefaults 。 而不是使用registerDefaults:我可以使用setValue:forKey:并使我的默认设置转到持久存储,绕过每次启动时需要构build和注册字典。 但是,Apple的文档和示例代码都指向registerDefaults: 所以我想弄清楚什么时候和为什么我应该使用registerDefaults:什么时候/为什么我应该使用setValue:forKey:相反?

使用NSUserDefaults保留MPMediaItemCollection对象

你如何坚持使用NSUserDefaults MPMediaItemCollection对象? MPMediaItemCollection对象是从iPod中select的单曲。 我一直在挣扎几个小时! 任何人有任何想法或替代NSUserDefaults或从MPMediaItemCollection转换,或任何? 谢谢…

NSUserDefaultsDidChangeNotification:什么是密钥的名称,改变?

当UserDefaults中的某个值发生更改时,此代码将调用方法“defaultsChanged” NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; [center addObserver:self selector:@selector(defaultsChanged:) name:NSUserDefaultsDidChangeNotification object:nil]; 这个代码会给我改变的价值 – (void)defaultsChanged:(NSNotification *)notification { // Get the user defaults NSUserDefaults *defaults = (NSUserDefaults *)[notification object]; // Do something with it NSLog(@"%@", [defaults objectForKey:@"nameOfThingIAmInterestedIn"]); } 但我怎么能得到的密钥的名称,改变?

尝试在Swift 3中保存自定义对象时尝试插入非属性列表对象

我有一个符合NSCoding协议的简单对象。 import Foundation class JobCategory: NSObject, NSCoding { var id: Int var name: String var URLString: String init(id: Int, name: String, URLString: String) { self.id = id self.name = name self.URLString = URLString } // MARK: – NSCoding required init(coder aDecoder: NSCoder) { id = aDecoder.decodeObject(forKey: "id") as? Int ?? aDecoder.decodeInteger(forKey: "id") name = aDecoder.decodeObject(forKey: […]

检测NSUserDefaults上的更改

我正在开发一个iOS应用程序与最新的SDK。 我想知道NSUserDefaults上的属性NSUserDefaults更改它的值。 我已经find了这个 ,但它是特定的MAC: [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:[@"values." stringByAppendingString: @"MyPreference"] options:NSKeyValueObservingOptionNew context:NULL]; 我怎么能在iOS上做到这一点?

检测应用程序的第一次运行

我正在创build一个应用程序,在应用程序第一次启动时,我必须创build一个plist。 我稍后将使用plist来存储用户稍后input的细节。 如何检测应用程序的首次启动? 我正在尝试NSUserDefaults,但我认为我做错了什么。

使用Swift将类的结构保存到NSUserDefaults中

我有一个类,里面的类是(swift)数组,基于全局结构。 我想用这个类保存一个数组到NSUserDefaults。 这是我的代码: struct mystruct { var start : NSDate = NSDate() var stop : NSDate = NSDate() } class MyClass : NSObject { var mystructs : [mystruct] init(mystructs : [mystruct]) { self.mystructs = mystructs super.init() } func encodeWithCoder(encoder: NSCoder) { //let val = mystructs.map { $0 as NSObject } //this also doesn't work let […]

带有XCode 8 GM的iOS 10导致NSUserDefaults间歇性地无法工作

注意:我已经看到堆栈溢出的许多其他职位关于NSUserDefaults被重命名为Swift的UserDefaults或不工作在模拟器上,直到重新启动。 这不是重复的。 SO所标注的许多问题都来自4年前。 我的问题是从今年开始专门针对iOS 10,因为这一直在旧版本中工作。 我已经在我的问题中提到过,我的问题不是那些模拟器错误的问题,我的问题是在设备客观的C错误。 请在标记为重复之前阅读这些问题 我的问题是不同的,因为我能够在目标C和物理设备上重现这一点。 我为这个testing从头开始创build一个全新的项目。 我把这个代码放在视图控制器的viewDidLoad中: if (![[NSUserDefaults standardUserDefaults] valueForKey:@"checkIfInitialized"]){ NSLog(@"setting checkIfInitialized as not exist"); [[NSUserDefaults standardUserDefaults] setValue:@"test" forKey:@"checkIfInitialized"]; [[NSUserDefaults standardUserDefaults] synchronize]; self.view.backgroundColor=[UIColor redColor]; self.mylabel.text=@"NSUserDefaults was NOT there, try running again"; } else { NSLog(@"checkIfInitialized exists already"); self.view.backgroundColor=[UIColor blueColor]; self.mylabel.text=@"NSUserDefaults was already there this time, try running again"; } 现在,如果我运行该应用程序约10倍,几次它发现checkIfInitialized ,有时它不。 […]