草庐IT

nsuserdefault

全部标签

iphone - NSUserDefaults 不保存在 iOS 7

我在使用NSUserDefaults时遇到了这个问题。它会保存默认值,直到我在后台终止应用程序,然后当我返回时所有默认值都消失了。每次在我的设备上构建新版本时,它们也会消失。但同样,只要我不在后台杀死它,它们就在应用程序中。它在iOS6中运行良好。想法? 最佳答案 在字符串中获取您的值(或根据您的要求的任何其他值)并将字符串保存在用户默认值中NSUserDefaults*userdefault=[NSUserDefaultsstandardUserDefaults];NSString*str=[NSStringstringWithF

objective-c - AVAudioPlayer 和 NSUserDefaults

[PlaySoundstop];[PlaySoundprepareToPlay];[[NSUserDefaultsstandardUserDefaults]synchronize];text=[[NSUserDefaultsstandardUserDefaults]stringForKey:@"defaulttext"];NSLog(@"%@",text);BOOLloop=[prefsboolForKey:@"switch"];NSLog(@"%d",loop);do{[PlaySoundplay];}while(loop==YES);我在使用这段代码时面临两个主要问题。1)这是一个

iphone - 自动重置损坏的 NSUserDefaults

有没有办法在iOS中从损坏的NSUserDefaults中进行内部恢复?例如,在这种情况下是否会引发特定的异常,然后我可以优雅地响应?我认为我的一些用户在启动时遇到崩溃是因为设置损坏(他们不给我发电子邮件,所以我不知Prop体情况),如果我的应用程序可以在发生这种情况时自动重置NSUserDefaults就好了。相关问题:如何故意破坏NSUserDefaults来测试这种情况? 最佳答案 我会试试幸运的猜测:尝试在启动时在NSUserDefaults中添加对对象类的检查。所以在代码中使用它们之前。或者检查其他一些东西,具体取决于那里

ios - 如何使用 NSUserDefaults 保存和检索数据

我的应用中有100个视频的数据。我需要暂停或停止时的每个视频播放时间我需要使用NSUserDefaults存储所有视频播放时间。我怎样才能做到这一点?我试过了。它可以很好地显示停止的持续时间,但我需要在单个键值引用(如数组或字典)中保存停止、暂停和完整的视频持续时间。-(void)moviePlayerPlaybackStateDidChange:(NSNotification*)notification{NSLog(@"playbackDidChanged");moviePlayer=notification.object;MPMoviePlaybackStateplaybackSt

ios - NSUserDefaults boolForKey 在 iOS 8 中不起作用

我有一个简单的问题,但到目前为止找不到答案。我有一个注册View,它只在用户首次启动该应用程序时出现一次,一旦成功,它就再也不会显示了。我将其作为BOOL存储在NSUserDefaults中。以下是我在应用程序首次启动时checkin应用程序委托(delegate)的方式:if([[NSUserDefaultsstandardUserDefaults]boolForKey:@"returninguser"]!=YES){//Firstlaunch}else{//notfirstlaunch}我遇到的问题是,在首次启动时,[NSUserDefaultsstandardUserDefaul

ios - 如果手机在同步前死机,nsuserdefault 数据会发生什么

假设我正在NSUserDefaults中保存有关用户的数据,而用户的手机在我同步数据之前就挂掉了。发生什么了?所有数据都丢失了吗?它是否以某种方式保留了下来? 最佳答案 当您使用NSUserDefaults为键设置值时,数据首先保存在内存中。NSUserDefaults定期将更改写入磁盘(使它们持久化)或者您可以调用synchronize,如果您不能等待(例如,如果您的应用程序即将退出)。如果在应用程序崩溃或手机死机之前未调用(自动或由您调用)同步,则新数据永远不会写入磁盘并将丢失。 关

iphone - 我们可以更新存储在 NSUserDefault 中的数组吗

我将值存储在一个数组中,并将该数组存储在NSUserDefault中,然后我需要更新该数组,我可以这样做吗?如果那怎么办? 最佳答案 首先获取当前数据。NSArray*tempNew=[[NSArrayalloc]init];tempNew=[storeDataobjectForKey:@"accounts"];[tempArraddObjectsFromArray:tempNew];更新:[tempArraddObject:str];[storeDatasetObject:tempArrforKey:@"accounts"];

iphone - 如何将 NSUserDefault 值调用到另一个 View Controller ?

//我在单独的类文件中写了这个函数:-(void)Display{NSUserDefaults*prefs=[NSUserDefaultsstandardUserDefaults];NSInteger*Position=[prefsintegerForKey:@"currentlevel"];NSLog(@"------->%i",Position);//ThisNSLogisreturningValue6[prefssynchronize];}//在我的viewController中,我使用为我的类创建的对象调用此函数@interfaceViewController(){//disp

iphone - 如何将 plist 保存到 NSUserDefaults

我正在尝试将我创建的.plist保存到我的NSUserDefaults中,这样我就可以保存我放入其中的数据,所以如果应用程序是停止(从多任务栏中删除)我不会丢失这些值。我已被指向本教程here里面有这个示例代码。-(void)saveToUserDefaults:(NSString*)myString{NSUserDefaults*standardUserDefaults=[NSUserDefaultsstandardUserDefaults];if(standardUserDefaults){[standardUserDefaultssetObject:myStringforKey:

ios - 如何使用模拟器在 XCUITest 中以编程方式清除 NSUserDefaults

我已经阅读了几个与此相关的答案,他们建议执行以下操作之一,但这些选项对我不起作用。我有一个XCUITest,我试图在运行我的XCUITest的其余部分之前清除标准用户默认值。目前我的测试应用程序有一个调用此代码的按钮。我还尝试过直接从XCUITest中调用此代码(我不确定这是否可以正常工作,或者是否需要从应用程序中运行)。NSString*appDomain=[[NSBundlemainBundle]bundleIdentifier];[[NSUserDefaultsstandardUserDefaults]removePersistentDomainForName:appDomain