У меня проблема с SQLite3 на Xcode.проблема в том, что у меня есть эта база данных:
-------------------------|
| ID | Company | Model |
|------------------------|
| 1 | Audi | A4 |
| 2 | Audi | A4 |
| 3 | Audi | A3 |
| 4 | Audi | A4 |
| 5 | BMW | 330Ci |
| 6 | BMW | 330Ci |
| 7 | BMW | 750i |
| 8 | Mercedes | CL65 |
| 9 | Mercedes | CL65 |
--------------------------
Я хочу, чтобы sqlite3 показывал мне так:
-------------------------|
| ID | Company | Model |
|------------------------|
| 1 | Audi | A4 |
| 2 | Audi | A3 |
| 3 | BMW | 330Ci |
| 4 | BMW | 750i |
| 5 | Mercedes | CL65 |
--------------------------
У меня есть эта функция:
-(NSString *)loadModel
{
thecars = [[NSString alloc]initWithFormat:@"The data has been loaded to the pickers."];
sqlite3_stmt * sqlStatement;
@try {
NSString *dbPath = [self path];
if(sqlite3_open([[self path]UTF8String], &db) == SQLITE_OK)
{
NSLog(@"**** Database found at path.");
}
if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@"**** An error has occured: %@", sqlite3_errmsg(db));
}
NSString * hello = [NSString stringWithFormat:@"SELECT DISTINCT Model FROM Comp WHERE Company=%@",theChoosenCompany];
const char * sql = [hello UTF8String];
if(sqlite3_prepare(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
{
NSLog(@"**** Problem with prepare statement: %@", sqlite3_errmsg(db));
}
else
{
while (sqlite3_step(sqlStatement) == SQLITE_ROW) {
NSString * model = [NSString stringWithUTF8String:(char *)sqlite3_column_text(sqlStatement, 2)]; // Car models
[modelsArray addObject:model];
}
}
}
@catch (NSException *exception) {
NSLog(@"**** Problem with prepare statement: %@", sqlite3_errmsg(db));
}
@finally {
sqlite3_finalize(sqlStatement);
sqlite3_close(db);
return thecars;
}
}
проблема в том, что я всегда получаю сообщение об ошибке, а программа с ошибкой "Поток 1: Программа получила сигнал:" EXC_BAD_ACCESS "".
Я считаю, что оценка неправильная.
Пожалуйстаесли кто-то может помочь, я новичок в объективе-c, поэтому, пожалуйста, будьте терпеливы.
Большое спасибо!