Оператор выбора Sqlite в методе didFinishLaunchingWithOption - PullRequest
0 голосов
/ 21 октября 2011

Сегодня у меня есть 3 новых вопроса (iPad iOS):

1) Я пытаюсь выполнить метод select в методе didFinishLaunchingWithOption приложения appdelegate.Я хочу проверить, хочет ли пользователь оставаться в системе, и направить его на правильный экран.Я не получаю никаких ошибок при строительстве.Мой код:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    sqlite3_stmt *statement;

    const char *dbpath = [databasePath UTF8String];

    if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)

    {
        NSString *querySQL = [NSString stringWithFormat: @"SELECT LOGIN FROM CONTACTS WHERE LOGGED = '1'"]; 
        const char *query_stmt = [querySQL UTF8String];

        sqlite3_prepare_v2(contactDB, query_stmt, -1, &statement, NULL);

        if (sqlite3_step(statement) == SQLITE_DONE){
            NSLog(@"Success");
        }else{
            NSLog(@"No Success");
        }

        if (sqlite3_step(statement) == SQLITE_ROW) {

            NSString *loggedField = [[NSString alloc] initWithUTF8String:(const char *) sqlite3_column_text(statement, 0)];
            Model_Logged *model = [Model_Logged sharedModel_Logged];
            model.parameter = loggedField;
            mainView = [[mainViewController alloc] initWithNibName:@"mainViewController" bundle:[NSBundle mainBundle]];
            [self.window addSubview:mainView.view];
            [loggedField release];

        }else{
            loginView = [[loginViewController alloc] initWithNibName:@"loginViewController" bundle:[NSBundle mainBundle]];
            [self.window addSubview:loginView.view];

        }
        sqlite3_finalize(statement);
    }

    sqlite3_close(contactDB);

// Override point for customization after app launch

[self.window makeKeyAndVisible];
return YES;    

[mainView release];
[loginView release];

}

К сожалению, NSLog отображает «Нет успеха».Таблица «Контакты» существует, и все мои другие запросы SQLite работают отлично.Любые идеи, почему этот код не может быть выполнен?Имеет ли это какое-то отношение к этому методу didFinishLaunchingWithOption?

2) Навязывает ли Apple какие-либо правила безопасности, которые нам необходимо соблюдать в отношении логинов / паролей?Обязательно ли использовать MD5 Hash или другие средства безопасности?

3) Что-то совсем другое: возможно ли загрузить данные, хранящиеся в базе данных SQLite, в iCloud?Я прочитал, что вам нужно использовать Core Data, но мне нужно будет создать много реляционных таблиц в моем приложении (объединить пользователей с несколькими типами уже объединенных данных), для которых я считаю SQLite наиболее подходящим и простым решением.Если я хочу сделать это приложение доступным и для iPhone, я считаю необходимым, чтобы пользователь мог обмениваться данными между своими устройствами ... Или нет ...?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...