Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Dan_banan_
10 / 10 / 1
Регистрация: 03.03.2013
Сообщений: 87
Записей в блоге: 1
#1

Работа с UITextView - Objective-C

13.03.2014, 13:04. Просмотров 1072. Ответов 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 минуты
Ну неужели мы тут только про кнопочки говорить будем в этом форуму? (
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 13:04     Работа с UITextView
Посмотрите здесь:

Добавление строк в UITextView - Objective-C
Столкнулся с проблемой, что необходимо выводить последовательно строки на TextView. При записи: self.TextView.text=text_toView; ...

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

UITextView - Программирование iOS
Всем здавствуйте, подскажите в вот таком вопросе, есть у выше упомянутый TextView в него грузится текст из сети, и в нем бывают ссылки я...

Добавить два UITextView в UIView программно - Swift
Привет! Не могу сообразить как добавить два UITextView в UIView программно что бы эти две текстовые вьюхи расположились равномерно...

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

SIGABRT после создания Outlet для UITextView - Программирование iOS
Ничего сложного не сделал. Размесил на форму UITextView, компилирую, все отлично. Созданию событие для кнопки и из XIB файла соеденяю с...

Работа - проведение обучающих семинаров по C#. Работа по выходным дням ( сб-вс - 32 часа). От 30 000р. - Предложения работодателей
Обязанности - проведение обучающих семинаров по C# Базовый (начальный уровень). Опыт преподавания не обязателен, главное чтобы вы не...

Нужна летиратура, в которой бы описывались работа с событиями, работа с элементами управления - C#
Помогите пожалуйста найти летиратуру, в которой бы описывались работа с событиями,работа со всеми элементами управления(toolbox).И если...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lexus_ilia
3045 / 921 / 34
Регистрация: 24.09.2008
Сообщений: 1,530
18.03.2014, 13:42     Работа с UITextView #2
Хм, если я вас правильно понял. Вы каждый раз копировали весь текст и вставляли его, правильно ? если так, то это удвоение памяти на каждую операцию. Ну допустим у вас был один символ в начале. Пусть он занимает 1 байт (на самом деле конечно больше из-за NSString класса, но допустим).
После десяти операций у вас выделено 512 байт , а на 20-ой операции 500 Кб. Пока что все нормально. Но если вы сделаете еще 10 операций, то получите уже 500 Мб выделенной памяти, что конечно приведет к падению приложения.
И я это все считал для одного начальноог байта и с учетом того, что каждый новый символ добавляет только по одному байту. Уточните ваши данные эксперимента, чтобы можно было более точно провести расчеты.
Dan_banan_
10 / 10 / 1
Регистрация: 03.03.2013
Сообщений: 87
Записей в блоге: 1
24.03.2014, 17:41  [ТС]     Работа с UITextView #3
ну не совсем так) это бага IOS если верить стековерфлоу) я вставляю всегда один и тот же текст а память увеличивается в мегабайты. Попробуйте сами , создайте тестовую апликаху на которой будет только один UITextView, напишите 4 строчки символов, скопируйте и вставляйте их постоянно. Обратите внимание на память
Yandex
Объявления
24.03.2014, 17:41     Работа с UITextView
Ответ Создать тему
Опции темы

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