Метод — это раздел или блок кода, который мы можем вызывать из другого места в нашем коде. По сути, метод — это функция, принадлежащая классу.

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

Когда и почему вы используете метод?

Методы используются для организации нашего кода в многократно используемые (и понятные) фрагменты, которые экономят нам много времени.

Вызов метода (также известный как отправка сообщения)

Когда вы вызываете метод для объекта, многие называют это «отправкой ему сообщения».

Отличительной особенностью Objective C является активное использование квадратных скобок («[ ]») для отправки сообщений объектам. Objective C использует квадратные скобки для обозначения сообщений при отправке их классам или объектам.

Пример:

[someObject doSomething];

некоторыйОбъект = Объект

doSomething = отправляемое сообщение (запрошенное действие)

Давайте попробуем пример из реального мира:

[addressBook displayNames];
[addressBook displayNamesWithTitle: title];

Таким образом, в приведенном выше примере addressBook является объектом. displayNames — это метод. Вторая строка кода демонстрирует вызов сообщения с передаваемым параметром (или аргументом). Параметром в данном случае является слово «заголовок».

Кроме того, вы также можете вызывать метод класса, именно так создаются объекты.

В следующем примере мы вызываем метод «string» в классе NSString, который затем возвращает новый объект NSString.

id myStringVariable = [NSString string];

id – это тип, относящийся к любому объекту. В этом операторе объявляется, что переменная myStringVariable может ссылаться на любой объект.

В вызове сообщения мы знаем, что объект имеет тип NSString (выделено жирным шрифтом), поэтому мы просто изменим тип на NSString (со звездочкой).

NSString* myStringVariable = [NSString string];

Мы добавляем звездочку, потому что «доступ ко всем объектам осуществляется через указатель». Все объектные переменные Objective C являются типами указателей.

Цель C и ее многословие

Методы Objective C предназначены для устранения всех неоднозначностей в API (интерфейсе прикладного программирования). Следовательно, сообщения Objective C могут иметь длинные имена. В Objective C аргументы прописаны и названы, из-за чего Objective C известен как многословный язык.

Давайте рассмотрим несколько примеров вызова методов:

Если наш метод возвращает значение…

[result = myObject.someMethod];

Здесь «результат» — это значение, а метод вызывается для «myObject».

Как и в предыдущем примере в этом посте, когда мы передаем аргумент через метод, мы затем используем двоеточие.

[myObject someMethod: arg];

Если у вас есть метод, который принимает несколько аргументов, то…

[myObject insertString: @"Hello" atIndex: 11];

Если вам нужно вложить методы друг в друга, то…

[myObject someMethod: [anotherObject anotherMethod]];

Мы часто видим вложенные методы при выделении места для объекта в памяти. В приведенном ниже случае мы отправляем сообщение alloc классу addressBook.

[addressBook alloc]

Метод alloc — это метод уровня класса, определенный в NSObject. Alloc выделяет память для нашего объекта, и именно так мы получаем новый экземпляр нашего класса.

Затем мы отправляем сообщение инициализации этому новому экземпляру:

[[addressBook alloc] init];

init означает «инициализированный», а также является методом уровня класса, производным от NSObject.