Аргумент вызова функции является неинициализированным значением? - PullRequest
1 голос
/ 27 ноября 2011

Я пытался выяснить, почему Analyzer в XCode, похоже, нравится этот код, поэтому, возможно, кто-то может увидеть, что не так.Дает мне это сообщение: «Аргумент вызова функции является неинициализированным значением».

У него проблема с этой строкой, и он жалуется на «оператор»:

if (sqlite3_exec(MysDB, delete_stmt, NULL, statement, NULL) == SQLITE_OK) {

Фактический код:

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
    sqlite3_stmt *statement;
    const char *dbpath = [databasePath UTF8String];

    if (sqlite3_open(dbpath, &MyDB) == SQLITE_OK)
    {
        NSString *deleteSQL = [NSString stringWithFormat:@"DELETE FROM DATATABLE WHERE ID = %d", recordID];

        const char *delete_stmt = [deleteSQL UTF8String];
        if (sqlite3_exec(MysDB, delete_stmt, NULL, statement, NULL) == SQLITE_OK) {

            NSLog(@"Deleted");            
        }else{
            NSLog(@"Not Deleted");
        }
        sqlite3_close(MyDB);
    }
}

More Code Here Removed on Purpose...
}

Ответы [ 3 ]

3 голосов
/ 27 ноября 2011

Вы не инициализируете sqlite3_stmt *statement; (прямо под if (buttonIndex == 1) {) каким-либо конкретным значением при его создании. И вы используете его в этой функции sqlite3_exec3().

1 голос
/ 27 ноября 2011

Третий параметр sqlite3_exec - это функция обратного вызова, которая в вашем примере в настоящий момент имеет значение NULL.И 4-й параметр является аргументом для этого обратного вызова.

http://www.sqlite.org/c3ref/exec.html

Итак, я думаю, что ему не нравится тот факт, что вы предоставляете фактический аргумент для функции обратного вызова NULL,

0 голосов
/ 27 ноября 2011

Я думаю, у вас может быть опечатка в этой строке.Первый аргумент sqlite3_exec, MysDB, вероятно, должен быть MyDB.

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