All streams
Search
Write a publication
Pull to refresh
12
0
Send message
Хм, я как программист и как человек знающий о принципах обработки изображений пока читал текст о «еле заметных» ватермарках смог придумать как минимум 3 способа поставить их так, что человек без специального софта их просто не различит. Так что думаю и вы бы о них не узнали не будь у вас как минимум 2-3 изображений с разных аккаунтов (если все так как описывается в статье), и усреднение 2-х изображений не помогло бы.
Бiльше того, маю зауважити, що якщо провести частотний аналiз спiввiднонення россiйської та польськї, то результати будуть схожі. Проте я ще не бачив росіянина, який розумів більше 20 відсотків живої польської мови.
Можно. Для этого есть ассоциированные объекты. В интерфейсе категории нужно указать новое свойство, а в реализации — геттеры и сеттеры, использующие рантайм. Подробнее
В Objective -c это называется категории
The Objective-C Programming Language
или в крайнем случае Википедия
Практические, но с этим нужно осторожнее быть и с Полным пониманием того что и зачем делается. В большинстве случаев лучше обойтись наследованием.
http://habrahabr.ru/blogs/macosxdev/123187/ — о рантайме, и том, чего можно добиться с его использованием. Код там исключительно учебно-ознакомительный, так что не судите строго
Нет. В Objective-C вы можете расширить любой Сушествующий класс добавив к нему какие-либо методы Без наследования. Например расширив клас NSObject и добавив к нему метод myDescription вы можете вызвать этот метод как у любого наслендика NSObject ( практически все классы ), так и у самого NSObject'а. Метод будет динамически добавлен в таблицу методов класса, расширение которого мы делаем.
В некоторых случаях лучше указывать параметры явно, особенно когда xib'ы грузятся из разных бандлов/названы отлично от класса. А по умолчанию там действительно так как выше написано. Тут еще многое зависит от внутренних соглашений/codestyle команды разработчиков.
Расширения не связаны с инкапсуляцией. Это именно добавление методов к существующему классу, даже к тому исходных кодов которого у вас нет, как например с библиотесными NSArray / NSSet
блин, вместо «Лучше использовать id» должно быть «Лучше использовать id < Protocol >»
«Лучше использовать id» имелось в виду Лучше использовать id, тогда то, что обьект сможет ответить на сообщение, описаное в протоколе будет проверятся на этапе компиляции
Если создавать контроллер через new, то он пытается загрузить xib с тем же именем, но лучше явно указывать как имена контроллера, так и бандла, например [[MyController alloc] initWithNibName:NSStringFromClass([MyController class]) bundle:[NSBundle mainBundle]]; Это и читается лучше и избавляет от необходимости запоминать правила поиска xib файлов при переданых параметров, и убирает строковые константы из кода, тогда компилятор сможет подсказать если ошиблись в написании.
Можно добавить в статью сравнение реализаций замыканий и их особенностей в Ruby и Objective-C. Мне было бы интересно прочесть, так как не особо знаком с Ruby.
Зачем приводить? Объекту, с типом id можно послать любое сообщение. Не факт что обьект на который указывает этот указатель сможет обработать это сообщение, будет варнинг на этапе компиляции, что фактически означает ошибку, либо, чаще всего непродуманность архитектуры. Лучше использовать id.
в Objective-C мы должны заранее определить все используемые внутри класса переменные."
Для добавления переменных класов в рантайме используются категории и функции objc_getAssociatedObject/objc_setAssociatedObject.

«в Objective-C нам предстоит написать type * variable в разделе описания переменных класса, @property(retain) type * variable; после описания методов, и @synthesize variable; в реализации класса.»
В разделе описания можно не писать Type * ivar. Достаточно написать @property(retain) Type* myProperty, после чего в реализации @synthesize myProperty = _myIVar и компилятор сам создаст соответствующую переменную
Получение прибыли — основная забота любой финансовой структуры. Приват — крупнейший банк Украины, первый по распространенности (особенно сеть банкоматов), так что при таких объемах они могут забивать на многое, деньги им все равно принесут. А если еще учесть бешеную текучку кадров, в том числе IT-специалистов, то случившееся закономерно
Четвертый шаг — роботизированый аквариум на гусеничном ходу с мысленным управлением от рыбки.
Почему-то не удивлен. Приват всегда отличался высоким качеством и заботой о клиентах.
Таких людей по всему миру ну очень много (не гиков, а именно аквариумистов). Но без обратной связи прибор не особо полезен.
А идея довольно не плохая. Создать такой себе великоразмерный томагочи. С веб камерой, пищит, когда рыбки хотят есть или в воде слишком мало кислорода. И можно с любой точки мира покормить питомцев.
Спасибо. Тогда еще несколько вопросов: какого размера ваши изображения, что для их обработки нужно 2-3 минуты? Делается ли нормализация гистограммы яркости для серого изображения?

Information

Rating
Does not participate
Registered
Activity