Skip to content

Instantly share code, notes, and snippets.

View arturlector's full-sized avatar

Artur Igberdin arturlector

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

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

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

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

  • Необходимо наследование классов или интерфейсов или делегаровать конструирование объектов фабрике
  • Необходимо использование экземпляров класса
  • Необходимо контролировать время жизни объекта (хоть это и очень редкая задача для синглтона)
@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.md
Last active February 16, 2017 00:42
Реализация синглтона (Singleton) в ARC и в non-ARC?

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

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

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

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

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

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

От абстрактного класса наследуются и реализуют абстрактный метод.
@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 / hotkeys.md
Last active March 6, 2016 12:02
hot keys

Hotkeys

Autocomplete

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

@arturlector
arturlector / heap.md
Last active April 18, 2017 09:30
Heap

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

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

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

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

@arturlector
arturlector / ios_platform_components.md
Last active August 10, 2016 19:00
iOS Platform Components

Внутренние компоненты iOS платформы? Из чего состоит iOS платформа?

Core OS (OSXKernel, Mach etc)
Core Services (Foundation, Networking etc)
Media (Core Audio, OpenAL, Quartz, Core Animation etc)
Cocoa Touch (UIKit, Camera, Controls, MapKit etc)

Core OS:

@arturlector
arturlector / multi_backspace.md
Last active February 10, 2016 07:22
Multiline backspace in UITextField

Когда происходит мульти-удаление при нажатии backspace на клавиатуре.

Multiline backspace in UITextField

NSRange textFieldRange = NSMakeRange(0, [textField.text length]);
    if (NSEqualRanges(range, textFieldRange) && [string length] == 0) {
        // Game on: when you return YES from this, your field will be empty
 
@arturlector
arturlector / objc_runtime.md
Last active March 13, 2016 20:14
Objective-C Runtime. Суть Runtime? Отправка сообщений? Ассоциативные ссылки?

Как работает Objective-C Runtime? Суть Runtime? Что такое Runtime?

У нас есть класс Он открыт поэтому мы обращаемся к свойствам

Создали объектам, нажали . и выбрали свойство.

Некоторые классы спрятаны и некоторые свойства спрятаны.