我想知道在NSUserDefaults中存储用户登录信息(例如用户名和密码)时的安全性。在关于如何存储此类信息的问题中,每个人都说NSUserDefaults不好,而KeyChan是正确的方法。但他们从不说为什么NSUserDefaults不好。在NSUserDefaults中存储密码是否存在安全风险?如果使用NSUserDefaults而不是KeyChain,它会被“黑客”访问吗? 最佳答案 这两种方法都使用独特的键/值方法,这是它们唯一的共同点。NSUserDefaults不使用加密并且是应用沙箱的一部分。因此,一旦应用程序被删
我为重复的问题道歉。我是ios的新手。我想将自定义对象存储在userdefaults中。我正在使用objective-c。提前致谢 最佳答案 首先,您创建自定义类,如下所示。自定义对象.h#import@interfaceCustomObject:NSObject@property(strong,nonatomic)NSString*name;@end自定义对象.m#import"CustomObject.h"@implementationCustomObject-(void)encodeWithCoder:(NSCoder*)en
在我的项目中,我在我的应用程序委托(delegate)中使用NSMutableArray和NSUserDefaults:-(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions{array=[[NSMutableArrayalloc]initWithArray:[[NSUserDefaultsstandardUserDefaults]objectForKey:@"array"]];和-(void)applicationWillTermi
我将用户名/密码存储在NSUserDefaults中。我不希望将此信息备份到iCloud。我怎样才能确保这不会发生?从文档看来,除非您使用NSUbiquitousKeyStore,否则NSUserDefaults根本不会备份。我的解释正确吗?谢谢! 最佳答案 这是正确的。iCloud可以进行键/值存储,但您必须明确使用此功能。NSUserDefaults不会与iCloud同步,因为存储在磁盘上的默认pList不在普遍存在的容器中。 关于ios-NSUserDefaults会同步到iClo
我创建了一个应用程序,它将使用用户名和密码登录,并允许用户从服务器下载文件。在我的应用程序中,一旦用户登录应用程序,我必须保留一些数据。持久化用户名、密码、用户下载列表、订阅计划等数据。数据可以通过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日志的扫描,