Skip to content

Instantly share code, notes, and snippets.

@arturlector
Created March 13, 2016 13:13
Show Gist options
  • Save arturlector/f2d90d8f81638b281c35 to your computer and use it in GitHub Desktop.
Save arturlector/f2d90d8f81638b281c35 to your computer and use it in GitHub Desktop.
Что такое тип id? Разница между NSObject и id? Что случится во время компиляции если мы посылаем сообщение объекту типа id?

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

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

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

Все непримитивные объекты являются типом id. 
Типу id можно посылать какие угодно сообщения. 
Объекту NSObject можно посылать только декларированые у него сообщения.
Явное указание типа объекта помогает компилятору искать нужные методы и разрешать неоднозначности.

Что случится во время компиляции если мы посылаем сообщение объекту типа id?

Выполнит соответствуюший метод, если найдёт, иначе выбросит исключение.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment