2012-02-07 28 views
0

您认为在应用程序中存储简单用户名字符串的正确方法是什么,以便在您再次打开应用程序时存在该字符串?我一直在阅读几种方法:核心数据,plist,nsuserdefaults。应用程序退出后保留用户名nsstring

人们用什么方式来做到这一点,如果可能的话,建议方式的利弊如何?

+1

'NSUserDefaults' – 2012-02-07 14:51:19

回答

1

核心数据被序列化为SQLite,并且对于何时处理多个对象并动态创建/删除它们更有意义。

Plist位于Core Data和NSUserDefaults的复杂度之间。他们可以使用某种结构处理数据,并将其作为文件保存在文件系统中。

由于您只是处理一条信息,因此NSUserDefaults对您最有意义。所有你需要做的保存字符串是:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:userNameString forKey:@"UserName"]; 
[defaults synchronize]; 

然后,检索字符串:

NSString *userName = [[NSUserDefaults standardUserDefaults] stringForKey:@"UserName"]; 
+0

感谢您的详细信息。肯定听起来像我为NSUserDefaults存储调用的简单信息。我曾与CoreData合作过,但认为这就像是用一把火箭筒杀死苍蝇。只是想得到你们的意见。 – 2012-02-07 15:18:02

3

我认为NSUserDefaults在这里是正确的选择。它用于存储用户的默认设置,这正是您所描述的。另外,从代码访问非常容易。

3

是NSUserDefaults的OK。但是,我猜如果你有一个用户名,你也有一个密码登录,不是吗?在这种情况下,你为什么不使用钥匙链来保存它?

+0

我不会存储密码。这些设备很可能会被许多人共享。为什么我会考虑存储加密密码的唯一原因是如果登录时缺乏连接性应该被覆盖。幸运的是,Web服务身份验证是要求的一部分。 – 2012-02-07 15:21:42

+0

所以我认为NSUserDefaults会是最适合你的情况。我在应用程序的类似环境中多次使用过它,现在我无法确定是否有更好的解决方案来满足您的需求。 – krzymar 2012-02-07 15:36:02

1

NSUserDefaults是最好的(在我看来)。但是,如果您决定不使用它,也可以使用归档。

这就是说,如果您使用UIDocument,则可以将其链接到云,如果您要在不同的应用程序中同步用户名。

相关问题