我创建了一个应用程序,它将使用用户名和密码登录,并允许用户从服务器下载文件。在我的应用程序中,一旦用户登录应用程序,我必须保留一些数据。持久化用户名、密码、用户下载列表、订阅计划等数据。数据可以通过NSUserDefaults、Plist等保存在应用程序中。但我觉得使用NSUserDefaults存储和检索值很容易。因为我需要在许多ViewController中使用这些值,所以我更喜欢NSUserDefaults。这是最佳实践吗?使用过多的NSUserDefaults会导致陷阱?告诉我还有其他方法可以在cocoa-touch中持久保存数据并轻松检索数据吗?
我有超时功能,如果应用程序空闲(在后台)一段时间,我会超时我的应用程序并将用户发送到登录屏幕。我在我的应用程序委托(delegate)中将用户默认设置中的“timedOut”键设置为YES,然后在每个ViewController中引用该键,如果它是YES,我将转至登录屏幕。在登录屏幕上,如果“timedOut”为"is",我有一个标签显示“session已超时”。我的问题是,如果我登录,然后很快注销,就会显示标签,即使我在显示标签后立即将该键显式设置为NO,然后同步用户默认值。如果我等一两秒钟然后注销,标签就会像它应该的那样被隐藏。我已经解决了“问题”,但想了解行为。View中的代码确
我的iOS应用程序需要在NSUserDefault中存储一个MKPolyline。我做了很多研究,现在我知道:NSUserDefaults是NSCoder的子类MKPolyline不是NSCoder的子类因此,很难将折线保存到nsuserdefaults。.我试图将MKPolyline转换为NSData:NSUserDefaults*defaults=[NSUserDefaultsstandardUserDefaults];NSData*data=[NSKeyedArchiverarchivedDataWithRootObject:routeLine];//routeLineisanM
当我从我的应用程序的语言选择列表中选择一种语言时,它会显示我之前选择的语言。如果我从我的模拟器堆栈中清除该应用程序或从xcode中清除它,然后运行该项目,之后一切正常,如果我想再次更改语言,那么我会遇到同样的问题。我的代码如下:-(IBAction)English:(id)sender{NSUserDefaults*userDefault=[NSUserDefaultsstandardUserDefaults];[userDefaultsetObject:[NSArrayarrayWithObjects:@"en",nil]forKey:@"AppleLanguages"];[user
我有一个问题无法解决,希望有人能给我提示或帮助。我有一个表,其中包含7个对象。当按下其中一个对象时,用户会看到一个新表格,对应于按下的对象。在此表格中,用户可以按下“添加”按钮,将他们带到一个新表格,在那里他们可以为表格2选择对象。表1和表3(第一个和最后一个)不需要编辑,但表2需要编辑。我需要添加用户从表3中选择的数据,并在关闭后再次进入应用程序时保存它。在表1中总是有7个对象。并且需要能够有一个不同的表2。所以我不确定最好的方法是创建7个不同的数组。我之前看过并一直在使用NSUserDefaults,但是我不确定在使用NSUserDefaults时有什么好的方法来解决这个问题。
这让我发疯。我有两个只是UIWebViews的应用程序,使用XCode4.5.2和iOS6.0SDK。我想更改网络调用的UserAgent。我在两者中都使用了这段代码:NSString*secretagent=@"MyUserAgent";NSDictionary*dictionary=[[NSDictionaryalloc]initWithObjectsAndKeys:secretAgent,@"UserAgent",nil];[[NSUserDefaultsstandardUserDefaults]registerDefaults:dictionary];根据我对Web日志的扫描,
我想在NSUserDefault中保存和检索值。我正在成功地保存和检索值(value)。但是当我去cakHomepage并再次进入我的类(class)时,值不会被存储,所有的过程都会再次完成。它不记住旧值。我在做这个--(void)ViewDidLoad{A=0;//intA;defonein.h[selfcalling_Once];}-(void)calling_Once{NSLog(@"Ais:%d",A);//AisalwayszerowhenIleavethisclassandreturnBacktothisclass.Thisismyonlyproblem.IwantA=1;
是否可以获取NSUserDefaults的总大小?因为据我所知它将所有内容保存在.plist文件中。找到该文件然后查看它有多大应该不难。 最佳答案 试试这段代码,NSString*libraryDir=[NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES)objectAtIndex:0];NSString*filepath=[libraryDirstringByAppendingPathComponent:[NSStringstrin
我正在尝试在我的iPhone应用程序中创建一个高分系统,允许我在高分保存文件中存储一个longlongint,因为我希望高分值大于普通整数。但我能找到的代码是这样的:if(ScoreNumber>HighScore){HighScore=ScoreNumber;[[NSUserDefaultsstandardUserDefaults]setInteger:HighScoreforKey:@"HighScoreSaved"];}HighScoreSaved不会正确保存,一旦ScoreNumber达到大于2,147,483,647的值或4字节整数的最大整数值,HighScoreSaved将
在iPhone中,我们使用NSUserDefaults临时存储自定义ListView的数据(大约30个图像和文本)。我们如何在Android中实现这一点? 最佳答案 通过使用共享首选项概念,您可以实现这一点。请参阅此链接:SharedPreferences并引用这个例子:exampleforsharedpreferences 关于android-如何在Android中实现NSUserDefaults概念,我们在StackOverflow上找到一个类似的问题: