Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Dan_banan_
11 / 11 / 1
Регистрация: 03.03.2013
Сообщений: 87
Записей в блоге: 1
1

Работа с UITextView

13.03.2014, 13:04. Просмотров 1210. Ответов 2
Метки нет (Все метки)

Всем привет! Вчера открыл для себя интересную особенность которой сам не смог найти объяснения, посему и пишу ) При копировании большого текста в UITextView размер оперативной памяти растет в геометрической прогресиии)) Обнаружил подобную проблему в рабочем проекте, после долгих часов разбирательств в утечках , и затирании профайлера до дыр попробывал создать тестовое приложение. Приложение это просто window даже без единого контроллера в котором на весь экран ручками кинул UITextView.
Objective-C
1
2
3
4
5
6
 UITextView *textView = [[UITextView alloc] initWithFrame:self.window.bounds];
    textView.backgroundColor = [UIColor redColor];
    [self.window addSubview:textView];
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
Так вот при запуске приложения вы видим красную область на весь экран как и ожидалось. Пишем текст любой в несколько десятков строк и потом выделяем его и копируем сюда же, подобные действия повторить n количество раз, выделяю все больше и больше текста. В результате можно догнать размер используемой памяти до предельного значения. На iphone 5 это 560 метров, после чего система убила приложение. Так вот буду очень признателен кто мне пояснит почему сколько то строк занимают 560 метров. Вероятно память где то не высвобождается при вставке текста. Проверял на проекте с ARC

Добавлено через 1 час 44 минуты
Ну неужели мы тут только про кнопочки говорить будем в этом форуму? (
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 13:04
Ответы с готовыми решениями:

Добавление строк в UITextView
Столкнулся с проблемой, что необходимо выводить последовательно строки на...

UITextView - неправильно отображает ввод
Добрый день! Добавляю UITextView на экран - ввод текста начинается в центре...

UITextView
Всем здавствуйте, подскажите в вот таком вопросе, есть у выше упомянутый...

Добавить чекмарки в UITextView?
Приветствую, кто знает, хотя бы ваше предположение, как было реализовано...

SIGABRT после создания Outlet для UITextView
Ничего сложного не сделал. Размесил на форму UITextView, компилирую, все...

2
lexus_ilia
3050 / 710 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
18.03.2014, 13:42 2
Хм, если я вас правильно понял. Вы каждый раз копировали весь текст и вставляли его, правильно ? если так, то это удвоение памяти на каждую операцию. Ну допустим у вас был один символ в начале. Пусть он занимает 1 байт (на самом деле конечно больше из-за NSString класса, но допустим).
После десяти операций у вас выделено 512 байт , а на 20-ой операции 500 Кб. Пока что все нормально. Но если вы сделаете еще 10 операций, то получите уже 500 Мб выделенной памяти, что конечно приведет к падению приложения.
И я это все считал для одного начальноог байта и с учетом того, что каждый новый символ добавляет только по одному байту. Уточните ваши данные эксперимента, чтобы можно было более точно провести расчеты.
0
Dan_banan_
11 / 11 / 1
Регистрация: 03.03.2013
Сообщений: 87
Записей в блоге: 1
24.03.2014, 17:41  [ТС] 3
ну не совсем так) это бага IOS если верить стековерфлоу) я вставляю всегда один и тот же текст а память увеличивается в мегабайты. Попробуйте сами , создайте тестовую апликаху на которой будет только один UITextView, напишите 4 строчки символов, скопируйте и вставляйте их постоянно. Обратите внимание на память
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2014, 17:41

Как делать Dismiss Keyboard на UITextView?
Доброго всем времени суток. Мне "повезло" я сел писать на Xamarin(C#) под iOS...

Добавить два UITextView в UIView программно
Привет! Не могу сообразить как добавить два UITextView в UIView программно что...

Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления
Помогите пожалуйста найти летиратуру, в которой бы описывались работа с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru