SQLITE crash when no data present in table
- by johnblack45
Hey,
Im having a problem with my app that causes it to crash when no data is present in the table when using a table view. I have tested my code and it works fine as long as there is data present but i need it to work when there is no data present.
-(void)initialiseTableData
{
NSMutableArray *array = [[NSMutableArray alloc]init];
sqlite3 *db = [iCaddyAppDelegate getNewDBConnection];
sqlite3_stmt *statement;
const char *sql = "select courseId, courseName, totalPar, totalyardage, holePars, holeYardages, holeStrokeIndexs from Course";
if(sqlite3_prepare_v2(db, sql, -1, &statement, NULL)!= SQLITE_OK)
{
NSAssert1(0,@"Error preparing statement",sqlite3_errmsg(db));
sqlite3_close(db);
}
else
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
Course *temp = [[Course alloc]init];
temp.courseId = sqlite3_column_int(statement,0);
temp.courseName = [NSString stringWithFormat:@"%s",(char*)sqlite3_column_text(statement,1)];
temp.totalPar =sqlite3_column_int(statement,2);
temp.totalYardage =sqlite3_column_int(statement,3);
NSString tempHolePars = [NSString stringWithFormat:@"%s",(char)sqlite3_column_text(statement,4)];
NSString tempHoleYardages = [NSString stringWithFormat:@"%s",(char)sqlite3_column_text(statement,5)];
NSString tempHoleStrokeIndexes = [NSString stringWithFormat:@"%s",(char)sqlite3_column_text(statement,6)];
NSArray *temp1 = [tempHolePars componentsSeparatedByString:@":"];
NSArray *temp2 = [tempHoleYardages componentsSeparatedByString:@":"];
NSArray *temp3 = [tempHoleStrokeIndexes componentsSeparatedByString:@":"];
for(int i = 0; i<=17; i++)
{
NSString *temp1String = [temp1 objectAtIndex:i];
[temp.holePars insertObject:temp1String atIndex:i];
NSString *temp2String = [temp2 objectAtIndex:i];
[temp.holeYardages insertObject:temp2String atIndex:i];
NSString *temp3String = [temp3 objectAtIndex:i];
[temp.holeStrokeIndexes insertObject:temp3String atIndex:i];
}
[array addObject:temp];
}
self.list = array;
[self.table reloadData];
}
}