存储我的iOS应用程序的用户信息的最佳方式

时间:2013-06-22 23:05:18

标签: ios database store

您建议使用哪种数据库?我想存储用户电子邮件,用户名,密码和其他一些随机信息。它不一定要花哨。只是一个简单的数据库有免费选择吗?

4 个答案:

答案 0 :(得分:3)

用户信息需要存储在钥匙串中以确保安全。

任何其他信息都可以存储在以下任何一个中:

  1. 用户默认NSUserDefaults
  2. 磁盘上的文件(可能是一个plist)
  3. 数据库Core Data(技术上只是磁盘上的文件)
  4. 您选择哪种方式取决于数据的含义,数量以及您需要的访问权限。

    如果您的数据很小并且被用户选择为某种设置,那么用户默认值是有意义的,并且是您实施的最低成本。

    要使用数据库,请查看Core Data intro

答案 1 :(得分:3)

将其存放在plist中。如果您正在谈论与一个或几个用户有关的数据,那可能很容易。 here就是一个简单的例子。

答案 2 :(得分:3)

Wain是对的,但我认为您希望存储少量数据以供进一步使用,最有效的方法是使用NSUserDefault

NSUserDefault将数据存储在NSDictionary类型的内容中。

我认为这是你必须采取的步骤:

1-检查数据是否存在。我的意思是如果用户在上次运行您的应用时选择了该号码。所以在viewDidLoad方法:

NSMutableDictionary *userDefaultDataDictionary =  [[[NSUserDefaults standardUserDefaults] dictionaryForKey:ALL_DATA_KEY] mutableCopy];

if (userDefaultDataDictionary) {
   // so the dictionary exists, which means user has entered the number in previous app run
   // and you can read it from the NSDictionaty:
   if(userDefaultDataDictionary[LABLE_KEY]){
        //and store it
    }
}

2 - 您可以实施某些方法,例如syncronize,以便在每次更改内容时将数据存储在NSUserDefault中。

- (void) synchronize
{
    NSMutableDictionary *dictionaryForUserDefault = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:ALL_DATA_KEY] mutableCopy];
    if(!dictionaryForUserDefault)
        dictionaryForUserDefault = [[NSMutableDictionary alloc] init];
    dictionaryForUserDefault[LABLE_KEY] = //data you want to store

    [[NSUserDefaults standardUserDefaults] setObject:dictionaryForUserDefault forKey:ALL_DATA_KEY];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

P.S。并且不要忘记#define你的词典密钥:

#define LABLE_KEY @"Lables"
#define ALL_DATA_KEY @"AllData"

答案 3 :(得分:2)

既然你说数据库,那就存储在Sqlite中。已经在xcode中为它提供了一些东西。

整个数据库包含在一个文件中,如果需要,可以移动它。

以下是关于如何在您的应用中使用其中一个的更多information