我有一个sqlite数据库,里面有6000行。我需要从中导入文本。它成功导入文本但需要花费大量时间。我不需要一次导入所有行,当我点击UITableView中的每个单元格时,它应该在UITextView中显示100-300行。我使用的代码如下:
@try {
NSFileManager *fileMgr = [NSFileManager defaultManager];
NSString *dbPath = [[[NSBundle mainBundle] resourcePath ]stringByAppendingPathComponent:@"MyDatabase.sqlite"];
BOOL success = [fileMgr fileExistsAtPath:dbPath];
if(!success)
{
NSLog(@"Cannot locate database file '%@'.", dbPath);
}
if(!(sqlite3_open([dbPath UTF8String], &db) == SQLITE_OK))
{
NSLog(@"An error has occured.");
}
const char *sql = "SELECT ID, MyText FROM MyTable ";
if(sqlite3_prepare_v2(db, sql, -1, &sqlStatement, NULL) != SQLITE_OK)
{
NSLog(@"Problem with prepare statement");
}
string = [[NSMutableString alloc]init];
MyTextView.text=@"";
while (sqlite3_step(sqlStatement)==SQLITE_ROW)
{
DetailsIDs *MyDetails = [[DetailsIDs alloc]init];
MyDetails.MyText = [NSString stringWithUTF8String:(char *) sqlite3_column_text(sqlStatement, 2)];
[MyTextView setText:[NSString stringWithFormat:@"%@ \n%@", MyTextView.text,MyDetails.MyText]];
}
}
@catch (NSException *exception)
{
NSLog(@"An mmmm exception occured: %@", [exception reason]);
}
@finally
{
}
}
我需要以最快的方式从数据库中检索文本,
我抓住了!请帮助我,谢谢!答案 0 :(得分:0)
以下是您的性能问题:
[MyTextView setText:[NSString stringWithFormat:@"%@ \n%@", MyTextView.text,MyDetails.MyText]];
你应该使用NSMutableString并附加到它,如果你真的想要一个长字符串中的所有内容。