Эффективное использование больших объемов текста в UITextView - PullRequest
1 голос
/ 20 августа 2010

У меня есть plist (массив словарей) с 20 элементами, каждый из 20 словарей имеет «код» и «текст»; каждый текст в среднем составляет 1 Кбайт. Класс, который использует текст, будет использовать 1 из 20, основываясь на «коде». Текст не меняется, поэтому я храню его в комплекте.

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

У меня есть 2 ивара без свойств:

NSMutableArray *explanation;
UITextView *textView;

textView находится в UITableViewCell и из cellForRowAtIndexPath, который я называю [self retrieveExplanation]. Я загружаю textView из retrieveExplanation, а не возвращаю NSString, чтобы сохранить дополнительное выделение памяти NSString.

-(void) retrieveExplanation {
    explanation = [[NSMutableArray alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"explanation"ofType:@"plist"]];
    textView.text = [[explanation objectAtIndex:[self.itemNumber intValue] - 1] objectForKey:@"text"]; 
    [explanation release];
}

Может ли это быть более эффективным? Стоит ли использовать 20 списков или текстовых файлов?

Спасибо

Ответы [ 2 ]

0 голосов
/ 20 августа 2010

С такими вещами действительно трудно быть определенными. Вы можете дать совет, но «истину» лучше всего определить, попробовав разные подходы и измерив количество использованного времени.

Все, что я могу предложить, это попробовать некоторые идеи ваших идей и получить некоторые точные цифры.

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

0 голосов
/ 20 августа 2010

Я думаю, вы должны тщательно обдумать эту проблему.Сколько времени занимает нормальный iPhone, чтобы загрузить весь ваш 20К текст.Если он действительно медленный, вам может потребоваться выделить текстовый файл.

Проблема, возникающая при их выделении, заключается в том, как вы можете управлять большим количеством текстовых файлов.На самом деле я не рекомендую вам разделять 20 текстовых файлов, слишком сложно управлять всеми ними по сравнению с производительностью, которую мы можем вернуть.

Я могу предложить вам выделить 4 текстовых файла,так что, по крайней мере, производительность увеличится в 4 раза.Если он работает достаточно быстро (например, <1 с), то ваша работа выполнена.Если это не так, то вам нужно отделить больше </p>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...