Я отображаю контакты на столе.Раздел, который я передаю в методе, называется именем раздела, то есть AZ .. и индекс является индексом строки в этом конкретном разделе.Таким образом, чтобы получить идентификатор на основе строки, которую я коснулся в определенном разделе, я написал следующий метод.Я пытаюсь получить идентификатор из базы данных, значения которой совпадают с запросом, который я передаю.Поэтому, если я проверяю имена, начинающиеся с буквы «А», то в разделе А будет около 4 значений. Поэтому я взял переменную i и пытался увеличивать ее до тех пор, пока она не найдет правильный индекс, чтобы он возвращал идентификатор для этого конкретного индекса.Условие проверяется, но когда я пытаюсь получить sid, оно выдает objc_exception_throw.Когда я попытался добавить точку отладки, я обнаружил, что исключение находится в этой строке, и в отладчике оно говорит NSInvalidArgumentException: NULLcString ..
Пожалуйста, помогите мне .. Это очень срочно, и я не знаю, что делать..Спасибо за помощь !!!
Ошибка в строке, где я получаю sid
Вот метод:
-(NSString *)getSugarIdNSString *)tableName bySectionNSString *)section andIndexint)inde
{
int i=0;
NSString *sid;
NSString *qsql = [[NSString stringWithFormat: @"SELECT sugar_id FROM CONTACTS WHERE first_name LIKE '%@",section] stringByAppendingString:@"%'"];
sqlite3_stmt *statement;
if (sqlite3_prepare_v2( db, [qsql UTF8String], -1, &statement, nil) == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
char * utf8string = (char *)sqlite3_column_text(statement, 1);
if(i==index){
sid = utf8string ? [[NSString stringWithUTF8String:utf8string] : nil;
// sid = [[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
break;
}
i++;
}
}
return sid;
}