UITextView: огромное использование памяти - PullRequest
1 голос
/ 11 июня 2019

Я сталкиваюсь с тем, что кажется чрезмерным использованием памяти в UITextView. Я загружаю текстовый файл ascii размером 50 КБ в строку NSString и назначаю его свойству .text пустого компонента UITextView в моем приложении. Это сразу добавляет больше 100 МБ к моей памяти (в 2000 раз больше фактического содержимого).

Есть ли способ (свойство или преобразование) сделать UITextView более эффективным с точки зрения памяти? Мне нужна возможность редактирования и прокрутка содержимого, но это обычный текст (не приписывается), и я не использую какие-либо сложные макеты или функции форматированного текста.

Для контекста: я работаю в среде с ограниченным объемом памяти (расширение аудиоустройства), поэтому каждый Мб памяти имеет значение.

Это, похоже, не связано с хорошо документированной утечкой памяти iOS11 UITextView, так как я не выпускаю компонент.

NSError* error = nil;
NSString* path = [[NSBundle mainBundle] pathForResource:@"Example" ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];
myUITextView.text = content; // this adds over 110Mb of memory usage for a 50Kb text file.

1 Ответ

0 голосов
/ 12 июня 2019

Ваш дизайн на самом деле не так.Вы не должны иметь 50 КБ текста в одном UITextView.Что вы должны сделать, это разделить этот текст на страницы.Таким образом, у вас есть несколько страниц UITextViews (многоразового использования Viewcontroller).

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