Skip to content

Instantly share code, notes, and snippets.

View arturlector's full-sized avatar

Artur Igberdin arturlector

  • Kazan
View GitHub Profile
@arturlector
arturlector / dot_notation_property.md
Last active March 14, 2016 14:49
Синтаксис с подчеркиванием и dot notation для обращения к свойства? Когда что использовать?

Синтаксис с подчеркиванием и dot notation для обращения к свойства?

Когда и что использовать?

Для работы со свойствами - используем dot notation синтаксис (это единство подхода).

При переопределении setter/getter и внутри init-метода - используем синтаксис с подчеркиванием. 
@arturlector
arturlector / self_in_blocks.md
Created March 13, 2016 21:11
Как использовать self внутри блоков? Пример retain cycle в блоке?

Как использовать self внутри блоков?

Когда нужен weak refence для self внутри блока?

Если блок находится во владении класса (retained). Например объект хранит свойство - блок.

Объект который владеет блоком - в этом случае и происходит захват self - внутри блока и происходит retain cycle (цикла владения).

@arturlector
arturlector / responder_chain.md
Last active December 21, 2017 18:34
Цепочка ответсвенности, что происходит с методом после того как он не нашелся в объекте класса, которому его вызвали (в сторону forwardInvocation:)?

Цепочка ответственности. Что происходит с методом после того как он не нашелся в объекте класса?

Вылет из приложения с NSUnknownException.
@arturlector
arturlector / selector.md
Last active March 13, 2016 20:21
Что такое селектор (selector)? Как его вызвать? как отложить вызов селектора? Что делать если селектор имеет много параметров?

Что такое селектор (selector)?

Это по сути строковое сообщение, которое посылается объекту, и он выполняет метод, ассоциированый с этим селектором.

Как его вызвать?

[self performSelector:@selector(method)];

Как отложить вызов селектора?

@arturlector
arturlector / isa_pointer.md
Created March 13, 2016 20:16
Что такое указатель isa? Для чего он нужен?

Что такое указатель isa?

Указатель на Class для данного объекта. Каждый объект имеет ссылку на свой класс через isa.

@arturlector
arturlector / id_vs_nsobject.md
Created March 13, 2016 13:13
Что такое тип id? Разница между NSObject и id? Что случится во время компиляции если мы посылаем сообщение объекту типа id?

Что такое тип id?

id - это указатель на любой НЕПРИМИТИВНЫЙ объект. В ARC нельзя сконвертировать примитив в id.

Разница между NSObject и id?

Все непримитивные объекты являются типом id. 
@arturlector
arturlector / fast_enumeration.md
Created March 13, 2016 12:53
Что такое быстрое перечисление (fast enumeration)?

Что такое быстрое перечисление?

Итерация (цикл) по коллекциям (NSArray, NSDictionary): 
for Type *item in Collection {}
@arturlector
arturlector / solid.md
Last active November 16, 2020 22:54
Что такое SOLID принципы?

Что такое SOLID принципы?

S - Single responsibility principle - Принцип единственной обязанности:

На каждый класс должна быть возложена одна-единственная обязанность.

O - Open/closed principle - Принцип открытости/закрытости:

Программные сущности должны быть открыты для расширения, но закрыты для изменения.
@arturlector
arturlector / calayer.md
Last active March 13, 2016 12:30
Что такое CALayer?

Что такое CALayer?

CALayer — это контейнер для битмапа изображения (bitmap image).

Когда UIView отрисовывается в методе drawInRect: он создает битмап для своего слоя (layer).
	
Остальные переменные слоя (многие взяты из представления, такие как frame и backgroundColor) указывают 
как и где это изображение находится на экране. Но основная часть слоя (с точки зрения использования памяти) 
@arturlector
arturlector / lifecycle_uiviewcontroller.md
Last active April 26, 2021 09:52
Цикл жизни UIViewController? UIViewController life cycle?

Цикл жизни UIViewController?

https://habrahabr.ru/post/129557/

Ответственность UIViewController

UIViewController согласно шаблону проектирования MVC обеспечивает взаимосвязь