Обновить
4

Пользователь

5
Подписчики
Отправить сообщение
И желательно, чтобы он был без сахара — когда вы его таки разольёте — будет проще отмывать.
Имхо, регекспы — переоцененный инструмент. Да, он неплохо решает определённый подкласс задач: например, поиск email в тексте, вычленение телефона номера из форматированной строки, etc. Но для него так же есть как слишком простые (поиск символов в подстроке), так и слишком сложные (парсинг файлов) задачи.

Конкретно тут в голову приходят несколько реализаций, которые будут не длиннее по коду и уж точно будут работать быстрее. Доберусь до чего-нибудь с xcode — скину пример.
textContainerInset даёт константную ошибку, так что это точно не оно. lineFragmentPadding… Может быть.
Я обычно создаю CTFramesetter и использую CTFramesetterSuggestFrameSizeWithConstraints.
Зачем?
Быстрее и читабельнее пройтись циклом по символам строки.
На win7 x64 где-то в районе Beta 3 резко возросло потребление памяти. Раза этак в 2. Если раньше самый «толстый» процесс потреблял 160мб памяти, то теперь — периодически переваливает за 300.
Как вы решили неточность расчёта размера текста?
Если ничего не изменилось за 2 мажорные версии iOS — boundingRectWithSize и, собственно, UITextView используют разные движки рендера текста. И результирующие размеры не совпадают.

Собственно, типичная ситуация: на 100 строк текста шрифтом Helvetica Neue boundingRectWithSize: даёт ошибку больше, чем высота двух строк.
Но вот основной проблемой остаётся прокрутка в середину таблицы — эта операция требует полного пересчёта всех промежуточных ячеек, либо кучи магии с перепозиционированием.
К сожалению, Эппловская документация грозится полной блокировкой работы с UIKit из фонового потока — со следующей мажорной версии iOS попытка обратиться к интерфейсу из фонового потока будет кидать исключение.

Так же, используя autolayout, вы можете кешировать размер ячеек без предварительного расчёта совсем: в методе cellWillDisplay: размеры ячеек уже рассчитаны и вы можете получить актуальный frame ячейки.
Фичреквест:
— Отклонение уведомлений раз и навсегда (для отдельного сайта или вообще как таковых)
— Отклонение геолокации раз и навсегда (для отдельного сайта или вообще как таковых)
— Блокировка js-хоткеев (для отдельного сайта или вообще как таковых)

Не люблю, когда сайты считают, что они умнее пользователя :)
Вы стали жертвой непонимания терминов.
Табы в понимании Mac OS X — это именно то, что вы увидели.
Вкладки сафари — стандартным элементом системы, вроде бы как, не являются.

А вообще iOS в плане API по сравнению в OS X выглядит как большая работа над ошибками.
По-моему, это всё один большой пиар…
Но надо заметить, что у Майкрософта это получается намного фееричнее. Меньше, но эффектнее, так сказать.
Я уж надеялся, что начиная с 2й версии на нём можно пилить что-то серьёзное и новый проект можно стартовать на Swift. Но нет, подожду-ка я до 4й :)
Описанное правило не поймает приведённый мной пример: здесь нет 2го if.

Кстати, я когда-то писал вам с предложением ввести правило для такого случая, можете перепроверить личку :)
Проблема в том, что не все следят. Я пришёл к выводу о необходимости такого правила, когда обноружил баг в модуле, который на прошлом тестировании работал, вызванный вот такими строками:

if (zoom == 1)
// log(items);

self.redraw();

А вся команда должна себя ограничивать потому, во-первых, любой может быть невнимателен, а во-вторых, потом вся команда будет искать этот баг
Имхо, плохая практика. Всегда при составлении codingstyle настаиваю на обязательном включении в фигурные скобки единственного оператора.
А сейчас сдали? :D

Вижу, что сдали. А где статья? :D
4 месяца. Учитывая, что они выкатывают апдейты каждую неделю — это 16 релизов. За это время они успели исправить пару старых багов и добавить десятка 2 новых :)
Ну не каждую же неделю вы что-то в код добавляете? Проект не новый, выкатывает кодовая база более или менее стабильна.

P.S.: Вы разработчик KeenSWH? По крайней мере из вашего ответа создалось именно такое впечатление.
Вообще, насколько я знаю, у них используются сторонние проприетарные библиотеки с закрытым кодом, которые они не могут выложить, а так же из-за этого они не могут выложить х64 версию. Хотя она собирается из этих же исходников с подключением библиотек, взятых из релизной версии.

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

Информация

В рейтинге
4 712-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность