什么是从ios中的sqlite数据库加载文本的最快方法?

时间:2014-07-14 01:43:40

标签: ios objective-c sqlite uitextview

我有一个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
{

}

}

我需要以最快的方式从数据库中检索文本,

我抓住了!请帮助我,谢谢!

1 个答案:

答案 0 :(得分:0)

以下是您的性能问题:

[MyTextView setText:[NSString stringWithFormat:@"%@ \n%@", MyTextView.text,MyDetails.MyText]];

你应该使用NSMutableString并附加到它,如果你真的想要一个长字符串中的所有内容。