У меня есть NSTableView с двумя столбцами, и я хочу заполнить их записи из базы данных SQLite.
этот метод является запросом для таблицы
-(void)getPersons
{
NSString *file = [[NSBundle mainBundle] pathForResource:@"persons" ofType:@"db"];
sqlite3 *database = NULL;
if (sqlite3_open([file UTF8String], &database)==SQLITE_OK)
{
NSLog(@"i open database");
sqlite3_exec(database, "select name,age from persons", MyCallback, persons, NULL);
}
sqlite3_close(database);
}
проблема возникает в методе MyCallback:
static int MyCallback(void *context, int count, char **values, char **columns)
{
NSMutableArray *persons = (NSMutableArray *)context;
for (int i=0; i < count; i++) {
NSString *columnname = [NSString stringWithUTF8String:columns[i]];
const char *nameCString = values[i];
if ([columnname isEqualTo:@"name"]) {
[persons addObject:[NSString stringWithUTF8String:nameCString]];
}
else {
[ages addObject:[NSString stringWithUTF8String:nameCString]];
}
}
return SQLITE_OK;
}
как я могу записать записи "age" в возраст NSMutableArray, если я могу назначить * контекст только для одного NSMutableArray? (в этом коде это NSMutableArray * person)
Конечно, я должен создать отдельный метод для получения записей возраста?
спасибо.