antonio's blog

antonio's blog


Блог о всяком разном, связанном с разработкой ПО. Пишу редко, когда есть время и желание.

Tags


objective-c

Сохранение пользовательских настроек с помощью NSUserDefaults

Для хранения пользовательских настроек месжду запусками приложения в Cocoa имеется класс NSUserDefaults. Каждому приложению доступен общий экземпляр класса NSUserDefaults. Доступ к этум экземпляру осуществляется с помощью вызова статического метода standardUserDefaults: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];…

Anton DobkinAnton Dobkin

Возвращаемый тип instancetype

В версию 5.0 Xcode (LLVM 5/Clang 5) была добавлена поддержка нового ключевого слова для Objective-C - instancetype. Для чего оно нужно? В соответствии с принятыми в Cocoa соглашениями наименования методов, Objective-C методы с названиями начинающимися с init, alloc, copy, а также методы с названиями new, autorelease, retain, self должн…

Anton DobkinAnton Dobkin

Класс NSNumber

Класс NSNumber является подклассом NSValue, объекты которого позволяют хранить значения скалярных числовых типов языка С. Класс добавляет набор методов для установки и чтения знаковых и без знаковых числовых типов, к которым относятся: char, short int, int, long int, long long int, float, double, NSInteger, BOOL. Объекты класса являют…

Anton DobkinAnton Dobkin

AutoLayout в iOS. Часть 3

Когда пользовательский интерфейс сложнее того, что мы создали в примере, то количество создаваемых связей, а соответственно и кода, становится в разы больше. Создание связей в коде и их дальнейшая отладка становится трудоемкой и утомительной задачей. Создание связей значительно упрощает визуальный формат для описания связей (Visual Format…

Anton DobkinAnton Dobkin

AutoLayout в iOS. Часть 2

Создавать AutoLayout связи между UI элементами можно не только в Interface Builder, это можно делать и программно Рассмотрим создание связей в коде на простом примере. В первом примере создадим пользовательский интерфейс с тремя кнопками, как показано на картинке ниже. Такой интерфейс мы уже создавали с помощью Interface Builder. Итак, пр…

Anton DobkinAnton Dobkin

AutoLayout в iOS. Часть 1

Помимо других интересных возможностей, в iOS 6 SDK был добавлен новый механизм расположения пользовательских элементов на экране, который называется AutoLayout (автомакет, автокомпановка). AutoLayout используется для построения динамических пользовательских интерфейсов, масштабируемых и адаптируемых к различным форматам и разрешениям экр…

Anton DobkinAnton Dobkin

Класс NSUUID

NSUUID класс позволяет создавать UUID (Universally Unique Identifier). UUID используется в программном обеспечении для идентификации устройств, информации, объектов, элементов и др., без опасения возникновения конфликтов из-за совпадения идентификаторов. UUID, также известный как GUID (Globally Unique Identifiers) и IIDs (Interface Ide…

Anton DobkinAnton Dobkin

Класс NSNull

Класс NSNull представляет из себя контейнер для типа null и применяется для его размещения в коллекциях NSArray, NSDictonary, NSSet и др., которые не позволяют размещать nil/NULL значения в явном виде. Класс является синглтоном (Singleton) и принимает следующие протоколы: NSCoding NSCopying Класс реализует единственный метод класса - nul…

Anton DobkinAnton Dobkin

Класс NSValue

Класс NSValue представляет собой простой контейнер для C данных и Objective-C и применяется для создания объектов из скалярных данных, для последующего их использования в коллекциях NSArray, NSDictonary, NSSet и др., которые работают только с объектами. Объекты класса NSValue способны сохранить любые скаларные данные, такие как, int, flo…

Anton DobkinAnton Dobkin

Протоколы в Objective-C

Протоколы в Objective-C описывают методы, которые должны реализовать классы принимающие эти протоколы. Методы описанные в протоколе не имеют собственной реализации, они реализуются в принимающем протокол классе. В других языках программирования протоколы известны как абстрактные классы и интерфейсы. Описание протокола начинается с дир…

Anton DobkinAnton Dobkin

Категории в Objective-C

Категории в Objective-C - это механизм позволяющий расширять существующие классы. Используя категории к классу можно добавить новые методы без применения наследованная и не имея исходников изменяемого класса. Добавляемые таким способом методы становятся доступными всем классам, унаследованным от изменяемого. С помощью категорий также м…

Anton DobkinAnton Dobkin

Переменные экземпляра с помощью категории в Objective-C

Бывает к существующему классу необходимо добавить переменные экземпляра, в категории objective-c нельзя определить переменные экземпляра. Нельзя определить прямым способом, но можно воспользоваться функциями runtime библиотеки. Рассмотри создание переменных экземпляра на примере. Создадим категорию расширяющую класс NSString, у категории…

Anton DobkinAnton Dobkin

Паттерн проектирования Singleton

Паттерн проектирования Singleton (синглтон) используется когда в приложении необходимо иметь один единственный экземпляр класса. В Cocoa данный паттерн проектирования используется довольно часто. Например, классы NSApplication, NSExceptionHandler NSUserDefaults являются синглтонами. Создать свой класс синглтон не составляет труда. Для эт…

Anton DobkinAnton Dobkin

Класс NSCountedSet

Класс NSCountedSet, также как и класс NSSet предназначен для создания неупорядоченного набора объектов, но в отличие от него позволяет создавать изменяемые (mutable), не уникальные наборы. NSCountedSet является подклассом NSSet Класс принимает следующие протоколы (наследование от NSSet): NSCoding NSCopying NSMutableCopying NSFastEnumer…

Anton DobkinAnton Dobkin