Вы не показали свой оператор запроса sqlite, но все в порядке ....
здесь Вы используете 4 объекта класса Cat_tableList, чьи значения (значения указателя) меняются для каждого значения цикла, выполняемого для каждой строки таблицы базы данных ..... поэтому эта проблема возникает, поскольку последняя запись может иметь list_ID = 6 ..
Я предлагаю
- Используйте
array of array
или array of dictionaries
для хранения всего этого, а затем вы можете использовать любой из них ...
- Также вы можете
modify your sqlite request
(я не уверен, что вы использовали здесь, я думаю, что вы использовали SELECT * FROM Table1) .... изменить его и изменить на SELECT * FROM Table1 WHERE list_ID=4
;
(list_ID должен быть заменен на точное имя столбца в вашей таблице базы данных) ..
Редактировать
Если вы хотите точно указать id = 4, вы можете использовать что-то вроде этого
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
if([[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)] isEqualToString:@"4"])
{
acat=[[[Cat_tableList alloc]init]autorelease];
acat.list_id=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
acat.cat_id=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
acat.names=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
acat.content=[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 3)];
[appDelegate.catLists addObject:acat];
(@"final AUTo_ID array is ............%@",acat.content);
NSLog(@" list_ID is ----------------------->is %@",acat.list_id);
}
}
Редактировать --- 2
Рассмотрим следующий пример, если вы хотите, чтобы все ваши значения таблицы
while(sqlite3_step(compiledStatement) == SQLITE_ROW)
{
NSMutableArray *arr=[[NSMutableArray alloc]init];
NSString *str1 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
[arr addObject:str1];
NSString *str2 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
[arr addObject:str2];
NSString *str3 = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
[arr addObject:str3];
[appDelegate.catLists addObject:arr];
[arr release];
}
Теперь у catLists есть все значения базы данных
Теперь получите к нему доступ
[[appDelegate.catLists objectAtIndex:int1]objectAtIndex:int2];
Надеюсь, это поможет вам