Offtopic. EVD-текст и CoreText - "близнецы братья".
EVDPara == NSAttributedString (CFAttributedString)
EVDFormattingInfo == CTFrame (CTCreateFrame)
EVDPainter == CTDrawFrame
EVDObjectSegment == GlyphRunnerDelegate
Когда я начал программировать CoreText и разобрался с ним - я понял, что "попал в привычную среду". Все понятия - "крайне похожи", с точностью до названий и "запятых".
Правда есть ещё:
EVDTable == ?
EVDTableRow == ?
EVDTableCell == ?
- ИХ пришлось "писать руками". На основе всё того же CoreText. Но с учётом на упрощение "объединения и выравнивания ячеек по вертикали", а также на "сложные рамки ячеек" - это не составило большого труда.
И я горжусь тем, что "изобрёл" что-то "похожее" на то, что Apple "двигает" как "промышленный стандарт.
Хотя.. "Всё описано в GoF".
-----------------------------------------------------
А ещё - "подсчёт ссылок" в Cocoa - КРАЙНЕ похож на "мой" подсчёт ссылок (http://18delphi.blogspot.ru/2013/04/iunknown.html). За исключением того, что "я НЕ придумал" autoreleasepool и autorelease.
И "то странно" - "мой"подсчёт ссылок - БОЛЬШЕ похож на подсчёт ссылок КАК РАЗ Apple, а не Borland.
Там есть ОДНА ТОНКОСТЬ. НО она - "дорогого стоит". Что "у меня", что у Apple - "конструктор" возвращает объект со счётчиком ссылок РАВНЫМ +1. В то время как у Borland'а - РАВНЫМ 0.
"У меня" и у Apple - счётчик ссылок взводится в КОНСТРУКТОРЕ и в retain. В то время как у Borland - "в момент присваивания переменной".
Мелочь. Но из этой мелочи - "многое растёт".
В частности проблема const/не const параметров, описанная Gunsmoker'ом.
Очень жаль, что Embarcadero со своим ARC "идёт путём Borland'а".
И ведь мне придётся "свой подсчёт ссылок" трансформировать под "мейнстрим". Если вдруг возникнет необходимость писать на Delphi под "мобильные устройства".
EVDPara == NSAttributedString (CFAttributedString)
EVDFormattingInfo == CTFrame (CTCreateFrame)
EVDPainter == CTDrawFrame
EVDObjectSegment == GlyphRunnerDelegate
Когда я начал программировать CoreText и разобрался с ним - я понял, что "попал в привычную среду". Все понятия - "крайне похожи", с точностью до названий и "запятых".
Правда есть ещё:
EVDTable == ?
EVDTableRow == ?
EVDTableCell == ?
- ИХ пришлось "писать руками". На основе всё того же CoreText. Но с учётом на упрощение "объединения и выравнивания ячеек по вертикали", а также на "сложные рамки ячеек" - это не составило большого труда.
И я горжусь тем, что "изобрёл" что-то "похожее" на то, что Apple "двигает" как "промышленный стандарт.
Хотя.. "Всё описано в GoF".
-----------------------------------------------------
А ещё - "подсчёт ссылок" в Cocoa - КРАЙНЕ похож на "мой" подсчёт ссылок (http://18delphi.blogspot.ru/2013/04/iunknown.html). За исключением того, что "я НЕ придумал" autoreleasepool и autorelease.
И "то странно" - "мой"подсчёт ссылок - БОЛЬШЕ похож на подсчёт ссылок КАК РАЗ Apple, а не Borland.
Там есть ОДНА ТОНКОСТЬ. НО она - "дорогого стоит". Что "у меня", что у Apple - "конструктор" возвращает объект со счётчиком ссылок РАВНЫМ +1. В то время как у Borland'а - РАВНЫМ 0.
"У меня" и у Apple - счётчик ссылок взводится в КОНСТРУКТОРЕ и в retain. В то время как у Borland - "в момент присваивания переменной".
Мелочь. Но из этой мелочи - "многое растёт".
В частности проблема const/не const параметров, описанная Gunsmoker'ом.
Очень жаль, что Embarcadero со своим ARC "идёт путём Borland'а".
И ведь мне придётся "свой подсчёт ссылок" трансформировать под "мейнстрим". Если вдруг возникнет необходимость писать на Delphi под "мобильные устройства".
Комментариев нет:
Отправить комментарий