Класс NSValue представляет собой простой контейнер для C данных и Objective-C и применяется для создания объектов из скалярных данных, для последующего их использования в коллекциях NSArray, NSDictonary, NSSet и др., которые работают только с объектами. Объекты класса NSValue способны сохранить любые скаларные данные, такие как, int, flo…
antonio
Протоколы в Objective-C описывают методы, которые должны реализовать классы принимающие эти протоколы. Методы описанные в протоколе не имеют собственной реализации, они реализуются в принимающем протокол классе. В других языках программирования протоколы известны как абстрактные классы и интерфейсы. Описание протокола начинается с дир…
antonio
Категории в Objective-C - это механизм позволяющий расширять существующие классы. Используя категории к классу можно добавить новые методы без применения наследованная и не имея исходников изменяемого класса. Добавляемые таким способом методы становятся доступными всем классам, унаследованным от изменяемого. С помощью категорий также м…
antonio
Бывает к существующему классу необходимо добавить переменные экземпляра, в категории objective-c нельзя определить переменные экземпляра. Нельзя определить прямым способом, но можно воспользоваться функциями runtime библиотеки. Рассмотри создание переменных экземпляра на примере. Создадим категорию расширяющую класс NSString, у категории…
antonio
Паттерн проектирования Singleton (синглтон) используется когда в приложении необходимо иметь один единственный экземпляр класса. В Cocoa данный паттерн проектирования используется довольно часто. Например, классы NSApplication, NSExceptionHandler NSUserDefaults являются синглтонами. Создать свой класс синглтон не составляет труда. Для эт…
antonio
Класс NSCountedSet, также как и класс NSSet предназначен для создания неупорядоченного набора объектов, но в отличие от него позволяет создавать изменяемые (mutable), не уникальные наборы. NSCountedSet является подклассом NSSet Класс принимает следующие протоколы (наследование от NSSet): NSCoding NSCopying NSMutableCopying NSFastEnumer…
antonio
Класс NSMutableSet, также как и NSSet, предназначен для создания неупорядоченного набора уникальных объектов, но в отличие от него позволяет создавать изменяемые (mutable) наборы. NSMutableSet является подклассом NSSet Класс принимает следующие протоколы (наследование от NSSet): NSCoding NSCopying NSMutableCopying NSFastEnumeration Кл…
antonio
Класс NSSet предназначен для создания не упорядоченного набора объектов - множеств. В отличие от массивов, в NSSet элемент может встретиться только один раз, т.е все элементы уникальны. Вы можете использовать наборы как альтернативу массивам, когда порядок хранения элементов не имеет значения, а производительность при проверке принадлеж…
antonio
Поддержка литералов в Objective-C для NSNumber, NSArray, NSDictionary появилась в Xcode c версии 4.4 (LLVM 4.0). Используя новый синтаксис нет возможности создавать изменяемые экземпляры NSNumber /* Допустимо использование суффиксов: u - unsigned, f - float, l - long, ll - long long */ NSNumber *myNumber = @10u; /* Эквивалентно */ NSNumb…
antonio
Ресурсы в PHP - это специальный, абстрактный тип в котором можно хранить любые пользовательские данные. К таким данным можно отнести дескрипторы файлов, структуры данных, различные хэндлы и т.д. У каждого ресурса есть уникальный идентификатор - простое цело число, которое храниться в структуре zval и используется как индекс внутренней хэш…
antonio
В библиотеке libxml2 есть несколько функций с помощью которых можно задать пользовательские callback-функции для обработки общих ошибок. Эти функции будут вызваны библиотекой при обнаружении ошибки во время обработки XML документа. Первая функция initGenericErrorDefaultFunc() устанавливает или сбрасывает, ранее установленный, обработчик…
antonio
Для добавления информации о расширении в вывод функции phpinfo() (или php -i в CLI), необходимо определить функцию MINFO с помощью макроса PHP_MINFO_FUNCTION: PHP_MINFO_FUNCTION(ext_name) { ... } Эта функция будет вызвана автоматически при вызове, из пользовательского пространства, функции phpinfo() или при выполнении команды php -i и…
antonio
Простой скрипт определения операционной системы и ее версии. Скрипт выводит строку в формате "название_ос-версия_ос" https://gist.github.com/1066874.git…
antonio