Skip to content

Instantly share code, notes, and snippets.

View arturlector's full-sized avatar

Artur Igberdin arturlector

  • Kazan
View GitHub Profile
@arturlector
arturlector / heap.md
Last active April 18, 2017 09:30
Heap

Что такое куча (heap) и стэк (stack)? В какой памяти создаются объекты, примитивные типы и блоки? [+]

Для объектов objc память выделяется в куче (heap). Для работы с управлением памятью объектов используются методы: retain, release и autorelease. Память кучи может быть занятой и свободной если объект обнулить.

Для примитивов память выделяется на стеке.

Для блоков память выделяется на стеке. Но можно удержать блок (в куче) посылкой сообщения copy.

@arturlector
arturlector / hotkeys.md
Last active March 6, 2016 12:02
hot keys

Hotkeys

Autocomplete

@import + “Esc” - вываливается список для выбора библиотек/модулей (Xcode).

@arturlector
arturlector / garbage_collector.md
Last active March 6, 2016 12:14
Сборщик мусора для iOS

Referance Counting - is not garbare collector.

Как работает сборщик мусора (garbage collector)?

Когда вы хотите создать объект но нет места в сегменте Памяти. JVM( Java Virtual Machine) проводит Garbase Collection, JVM ищет в памяти все объекты, которые более не нужны и избавляется от них. Автоматически заботиться об неиспользуемых объектах.

Reference Counting - ненужный объект сразу освобождается из памяти. Это одна из техник - Memory Management. (Управления памятью).

@arturlector
arturlector / abstract_class.md
Last active March 7, 2016 12:11
Абстрактный класс vs Интерфейс

Чем абстрактный класс отличается от интерфейса?

Абстрактный класс - может иметь поля, методы, но имеет хотя бы один абстрактный (не определенный) метод. 

Интерфейс - чистый абстрактный класс, в котором не может быть свойств и не определены методы.

От абстрактного класса наследуются и реализуют абстрактный метод.
@arturlector
arturlector / singleton.md
Last active February 16, 2017 00:42
Реализация синглтона (Singleton) в ARC и в non-ARC?

Реализация синглтона (Singleton) в ARC и в non-ARC?

Singleton - порождающий шаблон, который гарантирует, что в однопоточном приложении будет единственный экземпляр класса
с глобальной точкой доступа. 

Может последовать вопрос: "Почему бы не использовать статические методы класса?" Ответ: Статические методы класса не дают
широкую функциональность в отличие от единственного объекта класса. Кроме того, в будущем может понадобится несколько объектов.
@arturlector
arturlector / singleton_set_nil.md
Last active March 7, 2016 14:31
Как пересоздать синглтон? Можно ли обнулить объект синглтона?

Как пересоздать синглтон? Можно ли обнулить объект синглтона?

Possible to set singleton back to nil?

  • My question is: is it possible to set this object back to nil, so that on a later called to [MySingleton sharedInstance] the object gets re-initialised?

Your assumption about the local reference is correct, it won't affect your singleton.

@arturlector
arturlector / singleton_vs_static_class.md
Last active March 7, 2016 14:55
Назовите основные отличия синглтона от статического класса, и когда следует использовать один, а когда другой?

Назовите основные отличия синглтона от статического класса, и когда следует использовать один, а когда другой?

https://habrahabr.ru/post/103681/

Использование синглотона оправдано, когда:

  • Необходимо наследование классов или интерфейсов или делегаровать конструирование объектов фабрике
  • Необходимо использование экземпляров класса
  • Необходимо контролировать время жизни объекта (хоть это и очень редкая задача для синглтона)
@arturlector
arturlector / patterns.md
Last active October 26, 2018 14:09
Какие паттерны еще знаете?

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

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

    1. Абстрактная фабрика (Abstract factory)
    1. Строитель (Builder)
    1. Фабричнй метод (Fabric method)
    1. Ленивая инициализация (Lazy initialization)
@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 / push_notifications.md
Created March 8, 2016 16:26
Как работают push нотификации?

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

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

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

Когда произойдет какое-либо событие для вашего приложения, сервер отправит push-уведомление в APNS.