Skip to content

Instantly share code, notes, and snippets.

View arturlector's full-sized avatar

Artur Igberdin arturlector

  • Kazan
View GitHub Profile
@arturlector
arturlector / multiple_inheritance.md
Last active February 11, 2017 15:59
Как имитировать множественное наследование?

Как имитировать множественное наследование?

Наследоваться от класса, который в свою очередь наследуется от другого класса и т.д.
@arturlector
arturlector / nsset_vs_nsarray.md
Last active March 8, 2016 22:17
Чем отличается NSSet от NSArray?

Чем отличается NSSet от NSArray?

NSSet - хранит только уникальные объекты.

Какие операции происходят быстро в NSSet и какие в NSArray?

@arturlector
arturlector / array_mutablearray.md
Created March 8, 2016 22:07
В чем разница между NSArray и NSMutableArray?

В чем разница между NSArray и NSMutableArray?

NSArray - неизменяемый

NSMutableArray - изменяемый
@arturlector
arturlector / ivar_in_category.md
Created March 8, 2016 17:38
Можно ли добавить ivar в категорию?

Можно ли добавить ivar в категорию?

  • Да
Class c = objc_allocateClassPair([NSObject class], "Person", 0);
class_addIvar(c, "firstName", sizeof(id), log2(sizeof(id)), @encode(id));
Ivar firstNameIvar = class_getInstanceVariable(c, "fistName");
@arturlector
arturlector / category_vs_extension.md
Last active March 8, 2016 17:34
Чем категория отличается от расширения (class extension)?

Чем категория отличается от расширения?

В категории объявляются дополнительные методы. 

В расширении добавляются методы и поля. Расширение представляет собой особый тип категории и 
находится внутри реализации.
@arturlector
arturlector / category_vs_inheritance.md
Created March 8, 2016 17:18
Когда лучше использовать категорию, а когда наследование?

Когда лучше использовать категорию, а когда наследование?

Категория используется чтобы не плодить классы, только добавить нужный метод. 
(убрать в категорию анимацию для контроллера).

Наследование используется для переопределения существующих методов. 
(рутовый класс для контроллера).
@arturlector
arturlector / designated_initializer.md
Last active March 14, 2018 09:00
Что такое назначенный инициализатор (designated initializer)?

Что такое назначенный инициализатор?

Назначенный инициализатор (designated initializer) - это главный инициализатор(конструктор), все остальные методы
создающие класс вызывают этот метод.

Как выглядит назначенный инициализатор?

@arturlector
arturlector / push_notifications.md
Created March 8, 2016 16:26
Как работают push нотификации?

Как работают push нотификации?

iOS заправшивает у сервера Apple Push Notification Service (APNS) - токен девайса. Приложение получает токен девайса.
Можно считать что токен - это адрес для отправки push-уведомлений. 

Приложение отправляет токен девайса на ваш сервер.

Когда произойдет какое-либо событие для вашего приложения, сервер отправит push-уведомление в APNS.
@arturlector
arturlector / creational_patterns.md
Last active March 8, 2016 15:45
Порождающие паттерны (creational patterns)?

Порождающие паттерны (creational patterns)?

Aбстрактная фабрика (abstract factory)

Абстрактная фабрика (abstract factory): абстрактный класс, который предоставляет интерфейс для создания объекта. Программист должен наследоваться от него и переопределять его методы (реализовать интерфейс абстрактной фабрики).

В Objective-C паттерн реализуется через

@arturlector
arturlector / patterns.md
Last active October 26, 2018 14:09
Какие паттерны еще знаете?

Какие паттерны еще знаете? Классификация паттернов?

Паттерны порождающие (creational patterns)

    1. Абстрактная фабрика (Abstract factory)
    1. Строитель (Builder)
    1. Фабричнй метод (Fabric method)
    1. Ленивая инициализация (Lazy initialization)