Как управлять базой данных в iOS - PullRequest
1 голос
/ 16 марта 2011

Я должен сделать приложение для iPhone.У меня есть одна кнопка и имя кнопки - регистрация в xib. Если я нажму кнопку, откроется форма регистрации

форма регистрации будет создана на веб-сервере, если пользователь заполняет форму регистрации, предположив, что он заполнил имя пользователя и парольпри регистрации он будет сохраняться на сервере, а также имя пользователя и пароль должны сохраняться в локальной или локальной базе данных.

1 Ответ

3 голосов
/ 16 марта 2011

У вас есть 3 основных варианта сохранения данных для входа в систему; Настройки, Основные данные и SqlLite. Только для имени пользователя и пароля вам нужно использовать настройки, поскольку накладные расходы двух других опций будут чрезмерными, и они чаще используются для реляционных данных.

Чтобы использовать настройки, вам необходимо загрузить их, когда контроллер приложения инициализируется путем вызова;

+ (void) loadDefaultSettings {

    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *pListPath = [path stringByAppendingPathComponent:@"Settings.bundle/Root.plist"];
    NSDictionary *pList = [NSDictionary dictionaryWithContentsOfFile:pListPath];

    NSMutableArray *prefsArray = [pList objectForKey:@"PreferenceSpecifiers"];
    NSMutableDictionary *regDictionary = [NSMutableDictionary dictionary];

    for (NSDictionary *dict in prefsArray) {
        NSString *key = [dict objectForKey:@"Key"];
        if (key) {
            id value = [dict objectForKey:@"DefaultValue"];
            [regDictionary setObject:value forKey:key];
        }
    }

    [[NSUserDefaults standardUserDefaults] registerDefaults:regDictionary];
}

Затем вы можете сохранить свое имя пользователя и пароль с помощью вызова метода this;

+ (void) storePersistedLogin:(NSString *)uid withPassword:(NSString *)pswd  {
    [[NSUserDefaults standardUserDefaults] setObject:uid forKey:@"UID"];
    [[NSUserDefaults standardUserDefaults] setObject:pswd forKey:@"PSWD"];
}

Вы можете заполнить входы UITextField, используя следующий метод;

+ (void) populatePersistedLogin:(UITextField **)uid andPassword:(UITextField **)pswd {
    [*uid setText:(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:@"UID"]];
    [*pswd setText:(NSString *)[[NSUserDefaults standardUserDefaults] objectForKey:@"PSWD"]];
}

У меня есть эти открытые методы в отдельном классе SettingsUtils, поэтому я могу убедиться, что мои ключи совпадают. Вместо этого вы можете также объявить ключи как объекты NSString, чтобы уменьшить вероятность их неправильного набора.

...