Прочитать большой файл в таблицу sqlite в target-C на iPhone

У меня есть файл размером 2 МБ, не слишком большой, который я хотел бы поместить в базу данных sqlite, чтобы найти его. Есть около 30 тысяч записей в формате CSV с шестью полями на строку. Насколько я понимаю, sqlite на iPhone может обрабатывать базу данных такого размера.

Я выбрал несколько подходов, но все они были медленными & gt; 30 с. Я пробовал:

1) Использование кода C для чтения файла и разбора полей на массивы.

2) Использование следующего кода Objective-C для анализа файла и помещения его непосредственно в базу данных sqlite:

NSString *file_text = [NSString stringWithContentsOfFile: filePath usedEncoding: NULL error: NULL];

NSArray  *lineArray = [file_text componentsSeparatedByString:@"\n"];

for(int k = 0; k < [lineArray count]; k++){
    NSArray *parts = [[lineArray objectAtIndex:k] componentsSeparatedByString: @","];

    NSString *field0       = [parts objectAtIndex:0];
    NSString *field2       = [parts objectAtIndex:2];
    NSString *field3       = [parts objectAtIndex:3];

NSString *loadSQLi = [[NSString alloc] initWithFormat: @"INSERT INTO TABLE (TABLE, FIELD0, FIELD2, FIELD3) VALUES ('%@', '%@', '%@');",field0, field2, field3];


    if (sqlite3_exec (db_table, [loadSQLi  UTF8String], NULL, NULL, &errorMsg) != SQLITE_OK) {
        sqlite3_close(db_table);
        NSAssert1(0, @"Error loading table: %s", errorMsg);
    }

Я что-то пропустил? Кто-нибудь знает быстрый способ получить файл в базу данных?

Или возможно перевести файл в формат sqlite, который можно прочитать непосредственно в sqlite?

Или я должен превратить файл в plist и загрузить его в словарь? К сожалению, мне нужно искать в двух полях, и я думаю, что словарь может иметь только один ключ?

Луи, спасибо за ваш ответ.

Я должен был упомянуть, что я хочу записать данные в базу данных только один раз в начале приложения, а затем позже мне нужно только выполнить чтение базы данных, но не запись.

Можете ли вы сказать мне, как создать базу данных sqlite3 непосредственно из файла CSV в процессе сборки?

Ответы на вопрос(3)

Ваш ответ на вопрос