У меня проблема с производительностью при сборке приложения на устройстве. Это на самом деле в моей базе данных. У меня есть таблица деталей вина, в которой 2114 наименований вин. Чтобы получить все эти названия вин, я написал этот код в appDelegate
:
-(NSMutableArray*)getWineDetails
{
[wineDetailsList removeAllObjects];
sqlite3_stmt* statement;
const char *sql = "select *from wineDetails order by name";
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) != SQLITE_OK)
{
NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
}
while (sqlite3_step(statement) == SQLITE_ROW)
{
primaryKey = sqlite3_column_int(statement, 0);
//printf("\n primaryKey1 Value:%d",primaryKey);
wineDetails *wineDets = [[wineDetails alloc] initWithPrimaryKey:primaryKey database:database];
[wineDetailsList addObject:wineDets];
//printf("\n ==========================%d",[wineDetailsList count]);
[wineDets release];
}
sqlite3_finalize(statement);
printf("\n Inside AppDelegate .....wineDetailsList count:%d",[wineDetailsList count]);
return wineDetailsList;
}
Я вызываю этот метод в viewWillAppear
другого контроллера, где я должен отображать названия вин в табличном представлении.
Код viewWillAppear
:
-(void)viewWillAppear:(BOOL)animated
{
CorkItAppDelegate* appDelegate = (CorkItAppDelegate*)[[UIApplication sharedApplication] delegate];
winesList = [appDelegate getWineDetails];
[tableView reloadData];
}
Здесь проблема в том, что когда я собираю его в устройстве, для перехода в контроллер требуется слишком много времени из-за количества данных в базе данных. Что я должен сделать, чтобы избавиться от этой проблемы с производительностью?
Спасибо
Мониш Кумар.