Я немного борюсь с предупреждением компилятора.Здесь код:
const char *sql;
switch (fromVersion) {
case 0:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column00 TEXT NOT NULL DEFAULT 'migrated from version 0'";
}
case 1:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column01 TEXT NOT NULL DEFAULT 'migrated from version 1'";
}
case 2:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column02 TEXT NOT NULL DEFAULT 'migrated from version 2'";
}
case 3:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column03 TEXT NOT NULL DEFAULT 'migrated from version 3'";
}
case 4:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column04 TEXT NOT NULL DEFAULT 'migrated from version 4'";
}
case 5:
{
sql = "ALTER TABLE abiliator_options ADD COLUMN new_column05 TEXT NOT NULL DEFAULT 'migrated from version 5'";
}
}
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK)
{
if (sqlite3_step(selectstmt) == SQLITE_DONE)
{
NSLog(@"Alter statement successful");
[self setDatabaseSchemaVersion];
}
else {
NSLog(@"Failed to alter the table with message '%s'.", sqlite3_errmsg(database));
}
}
else {
NSLog(@"Failed to prepare the statement with message '%s'.", sqlite3_errmsg(database));
}
sqlite3_finalize(selectstmt);
Первое предупреждение: Значение, сохраненное в 'sql', никогда не читается для всех назначений sql var, кроме последнего в коммутаторе (случай 5).,Случай 5 не приводит к предупреждению.
Второе предупреждение: Аргумент вызова функции является неинициализированным значением .Это для if (sqlite3_prepare_v2 (database, sql, -1, & selectstmt, NULL) == SQLITE_OK) .
Заранее благодарим за ваши подсказки.