Tag: nsuserdefaults

在Monotouch中,是否可以将通用列表保存到NSUserDefaults?

我在我的MonoTouch应用程序中有一个List<Hashtable> ,我需要将其保存到我的设置。 NSUserDefaults ,但是,只接受从NSObjectinheritance的东西。 有没有一种简单的方法来包装我的List中,我可以存储在我的设置,或者是一个快速通用的方式来编码和解码一个JSONstring(或类似)的Hashtable ? 还是有一个MonoTouch的替代品,坚持一个小的Hashtable ?

使用objectForKey Swift NSUserDefaults NSArray

我对Swift非常陌生,而且我设法陷入困境。 我试图从NSUserDefaults检索数据,并将其存储在一个数组( tasks ): @lazy var tasks: NSArray = { let def = NSUserDefaults.standardUserDefaults() let obj: AnyObject? = def.objectForKey("tasks") return obj as NSArray }() 我得到的是第3行的警告: EXE_BAD_INSTRUCTION 。 另外要注意的是,我还没有实际设置任何数据,但我的目标是,如果没有数据,我想数组是空的。 我将使用数据填充表视图。 现在使用var而不是常量: @lazy var tasks: NSArray = { let def = NSUserDefaults.standardUserDefaults() var obj: AnyObject? = { return def.objectForKey("tasks") }() return obj as NSArray }() 现在错误已经转移到了返回线。

如何从NSUserDefaults存储检索浮点数

我无法在NSUserDefauts中存储和检索浮点数。 我存储的值,但是当我检索它,它返回0。 这是我的尝试,并没有工作: [pref setFloat:3.0f forKey:@"key"]; float value = [pref floatForKey:@"key"]; //value=0 [pref setFloat:3 forKey:@"key"]; float value = [pref floatForKey:@"key"];//value=0 [pref setObject:[NSNumber numberWithFloat:3] forKey:@"key"]; float value = [[pref objectForKey:@"key"]floatValue];//value=0 [pref setObject:[NSNumber numberWithFloat:3.0f] forKey:@"key"]; float value = [[pref objectForKey:@"key"]floatValue];//value=0 我在这里做错了什么? 我已经尝试了这4段代码,但是当从NSUserDefaults中检索到浮点数时,它们都返回零。 任何帮助表示赞赏。 谢谢!

如何在Objective-c中将结构保存到NSUserDefaults?

如何将自定义struct保存到NSUserDefaults ? struct Paging { NSInteger currentPage; NSInteger totalResults; NSInteger resultsPerPage; }; typedef struct Paging Paging; NSUserDefaults *userInfo = [NSUserDefaults standardUserDefaults]; [userInfo setStruct:paging forKey:@"paging"]; [userInfo synchronize]; 上面的代码会产生运行时警告: *** -[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value…

NSUserDefaults不保存

我在我的精灵工具包应用程序中,我的NSUserDefaultsvariables不起作用的问题。 在createSceneContents (我知道被称为) if (![defaults objectForKey:@"obj"]) { difficultyLabel.text = @"Difficulty: Easy"; [defaults setObject:@"Easy" forKey:@"obj"]; } else { difficultyLabel.text = [NSString stringWithFormat:@"Difficulty: %@", [defaults objectForKey:@"diff"]]; } 然后当你点击SKLabelNode来改变难度和这个代码被调用 if ([label.text isEqualToString:@"Difficulty: Easy"]) { label.text = @"Difficulty: Hard"; [defaults setObject:@"Hard" forKey:@"obj"]; NSLog(@"%@",[defaults objectForKey:@"obj"]); } else { label.text = @"Difficulty: Easy"; [defaults setObject:@"Easy" forKey:@"obj"]; NSLog(@"%@",[defaults objectForKey:@"obj"]); 但是当我停止程序并再次运行时,它总是说难度:容易。 有什么build议么?

iOS – 无法将NSDate存储到NSUserDefaults中

在我的应用程序中,我想存储第一次启动应用程序的date。 我在应用程序中使用以下代码:didFinishLaunchingWithOptions方法 NSDate* today = [NSDate date]; [[NSUserDefaults standardUserDefaults] registerDefaults: @{@"CONSCIENCE_START_DATE" : today}]; NSLog(@"%@", [[NSUserDefaults standardUserDefaults] objectForKey:@"CONSCIENCE_START_DATE"]); 但每当我启动应用程序时,它都会打印应用程序启动的时间。 它不打印我开始的应用程序的date。 我试图重置模拟器并再次运行代码。 仍然没有成功。 有人可以指出我的代码中的错误吗?

iOS游乐场的NSUserDefaults

iOS操作系统似乎有一个奇怪的问题, NSUserDefaults总是返回nil而不是实际的值。 在iOS游乐场中,最后一行错误地返回nil 。 import UIKit let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject("This is a test", forKey: "name") let readString = defaults.objectForKey("name") 在OSX Playground中,最后一行正确返回“This is a test”。 import Cocoa let defaults = NSUserDefaults.standardUserDefaults() defaults.setObject("This is a test", forKey: "name") let readString = defaults.objectForKey("name") 任何想法,为什么这是? 错误?

需要帮助将bool保存到NSUserDefaults,并在使用Swift的if语句中使用它

我正在努力弄清楚如何做一个布尔保存到NSUserDefaults使用swift的if语句。 我相信我知道如何将布尔保存到NSUserDefaults,但在这方面的确认将不胜感激。 这是我想弄清楚如何使用迅速客观c代码。 if(![[NSUserDefaults standardUserDefaults] boolForKey:@"onoroff"]) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"onoroff"]; } 这是我迄今在迅速… if NSUserDefaults.standardUserDefaults().objectForKey("onoroff") != nil{ NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff") } 我想我可能已经弄清楚了。 任何人都可以确认这是保存布尔到NSUserDefaults和使用if语句的正确方法。 这里是… if !NSUserDefaults.standardUserDefaults().boolForKey("onoroff"){ NSUserDefaults.standardUserDefaults().setBool(true, forKey: "onoroff") }else{ NSUserDefaults.standardUserDefaults().setBool(false, forKey: "onoroff") }

使用NSUserDefaults检测应用程序的初始启动

参考以下问题: iPhone:如何检测首次启动应用程序的时间? 当我查找NSUserDefaults苹果参考,它说, registerDefaults不存储数据到磁盘上。 在上面的问题中,应用程序在每次启动时将firstLaunch值firstLaunch为YES 。 因此,每次启动应用程序时, firstLaunch被覆盖为YES ,所以应用程序会一直认为这是应用程序的首次启动。 我对吗? 编辑: 做了上面的教程之后,它并不总是工作。 我继续从Xcode重新启动,并保持打印出第一次启动1布尔值。

读取目标设备上的UIAutomation的UIAApplication.setPreferencesValueForKey()设置?

在过去的几天里,我一直在玩苹果的UIAutomation框架,试图组装一套验收testing来推动我正在开发的应用程序(以BDDtypes的方式)。 我碰到的一件事是如何让SUT进入一个给定的状态,所以我可以开始我的testing,如果我需要设置一些内部状态发生。 问题是,苹果的Javascript环境没有提供任何function,我可以使用除了通过它的UI与设备通信(我敢肯定这可能是devise,但有时这是不切实际的):虽然像iCuke或弗兰克可以使用HTTP与embedded目标应用程序中的侦听服务器进行通信,但是在仪器的UIAutomation环境中没有办法做到这一点。 看看提供的API,我注意到在UIAApplication类中有一个函数,它允许我在目标设备上设置一个首选项值( 参见这里了解更多细节 ):在我看来,我可以在设备上安装一些代码可以使用KVO来观察给定的优先键的机会,然后我可以使用它作为与目标应用程序中的一些特定的testing特定的帮助代码进行通信的手段(当优先级的值被改变时进行反应)。 我开始四处游戏,看看是否可以做这个工作,但跑到砖墙上,我无法find一种方法来访问目标应用程序内由UIAutomation设置的首选项。 问题是首选项似乎设置在主机域级别(即它们在/Library/Preferences/com.mycompany.MyApp文件中设置),而不是在特定于我的应用程序的沙箱/Library文件夹中。 我知道肯定我设置的首选项是击中设备 – 我可以看到上述文件中的值改变,但我找不到使用NSUserDefaults访问这些值的方法。 任何人都可以阐明我应该如何访问在iOS设备上存储在这个级别(NSLocalDomain …)的偏好? 注:我意识到这是一个彻头彻尾的黑客,但不幸的是,苹果公司现在提供的环境似乎远远没有达到这个标准,所以我正在尽我所能填补空白,以代替苹果进一步的更新。 如果你在网上search,你会发现其他人有非常相似的经历,并尝试以类似的方式解决目前的缺陷。 更新 :根据这个线程有可能这是一个错误。 虽然我无法确认