SQLite를 사용하여 앱용 데이터를 저장하려고합니다. 이 데이터베이스는 수천 개의 레코드를 가질 수 있으므로 시작시 어레이에 모든 레코드를로드하는 것은 좋은 생각이 아닙니다. 그래서 그들을 각각 cellForForAtIndexPath에 ID로로드합니다. 이것은 효과가 있지만, 나는 그들을 분류 할 수 없다 ... 아무도 더 좋은 방법을 생각할 수 있을까? 나는 그것이 정말 간단 내기 : LiOS - cellForRowAtIndexPath SQLite 데이터 정렬?
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"VerbCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
VerbData *verb = [[VerbData alloc] init];
if(isFiltered)
verb = [searchResults objectAtIndex:indexPath.row];
else
{
const char *sql = [[NSString stringWithFormat: @"SELECT infinitive, english FROM verbs WHERE id=%d", indexPath.row+1] UTF8String];
sqlite3_stmt *sqlStatement;
if(sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK){
NSLog(@"Problem with prepare statement: %s", sqlite3_errmsg(db));
}else{
while (sqlite3_step(sqlStatement) == SQLITE_ROW) {
verb.infinitive = [NSString stringWithUTF8String:(char *)sqlite3_column_text(sqlStatement,0)];
verb.english = [NSString stringWithUTF8String:(char *)sqlite3_column_text(sqlStatement,1)];
}
}
}
cell.textLabel.text = verb.infinitive;
cell.detailTextLabel.text = verb.english;
return cell;
}
감사합니다 (:
지금 얻었다 (: 당신을 감사하십시오 : D –