Учебники

Функции Objective-C

Функция — это группа операторов, которые вместе выполняют задачу. Каждая программа Objective-C имеет одну функцию C, которая является main () , и все самые тривиальные программы могут определять дополнительные функции.

Вы можете разделить ваш код на отдельные функции. Как вы делите свой код между различными функциями, зависит от вас, но логически разделение обычно так, что каждая функция выполняет определенную задачу.

Объявление функции сообщает компилятору об имени функции, типе возврата и параметрах. Определение функции обеспечивает фактическое тело функции.

В основном в Objective-C мы называем функцию как метод.

Основа Objective-C предоставляет множество встроенных методов, которые может вызывать ваша программа. Например, метод appendString () для добавления строки в другую строку.

Метод известен с различными именами, такими как функция или подпрограмма или процедура и т. Д.

Определение метода

Общая форма определения метода в языке программирования Objective C следующая:

- (return_type) method_name🙁 argumentType1 )argumentName1 
joiningArgument2🙁 argumentType2 )argumentName2 ... 
joiningArgumentn🙁 argumentTypen )argumentNamen {
   body of the function
}

Определение метода в языке программирования Objective C состоит из заголовка метода и тела метода . Вот все части метода —

  • Тип возврата — метод может возвращать значение. Return_type — это тип данных значения, которое возвращает функция. Некоторые методы выполняют желаемые операции без возврата значения. В этом случае return_type является ключевым словом void .

  • Имя метода — это фактическое имя метода. Имя метода и список параметров вместе составляют сигнатуру метода.

  • Аргументы — Аргумент похож на заполнитель. Когда вызывается функция, вы передаете значение аргументу. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству аргументов метода. Аргументы необязательны; то есть метод может не содержать аргументов.

  • Аргумент присоединения — объединяющий аргумент состоит в том, чтобы облегчить чтение и сделать его понятным во время вызова.

  • Тело методаТело метода содержит коллекцию операторов, которые определяют, что делает метод.

Тип возврата — метод может возвращать значение. Return_type — это тип данных значения, которое возвращает функция. Некоторые методы выполняют желаемые операции без возврата значения. В этом случае return_type является ключевым словом void .

Имя метода — это фактическое имя метода. Имя метода и список параметров вместе составляют сигнатуру метода.

Аргументы — Аргумент похож на заполнитель. Когда вызывается функция, вы передаете значение аргументу. Это значение называется фактическим параметром или аргументом. Список параметров относится к типу, порядку и количеству аргументов метода. Аргументы необязательны; то есть метод может не содержать аргументов.

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

Тело методаТело метода содержит коллекцию операторов, которые определяют, что делает метод.

пример

Ниже приведен исходный код метода max () . Этот метод принимает два параметра num1 и num2 и возвращает максимум между двумя —

/* function returning the max between two numbers */
- (int) max🙁int) num1 secondNumber🙁int) num2 {
   
   /* local variable declaration */
   int result;
 
   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }
 
   return result; 
}

Объявления методов

Объявление метода сообщает компилятору об имени функции и о том, как вызвать метод. Фактическое тело функции может быть определено отдельно.

Объявление метода состоит из следующих частей:

- (return_type) function_name🙁 argumentType1 )argumentName1 
joiningArgument2🙁 argumentType2 )argumentName2 ... 
joiningArgumentn🙁 argumentTypen )argumentNamen;

Для определенной выше функции max () ниже приводится объявление метода —

-(int) max🙁int)num1 andNum2🙁int)num2;

Объявление метода требуется, когда вы определяете метод в одном исходном файле и вызываете этот метод в другом файле. В таком случае вы должны объявить функцию вверху файла, вызывающего функцию.

Вызов метода

При создании метода Objective-C вы даете определение того, что должна делать функция. Чтобы использовать метод, вам нужно вызвать эту функцию для выполнения определенной задачи.

Когда программа вызывает функцию, управление программой передается вызываемому методу. Вызываемый метод выполняет определенную задачу, и когда выполняется его оператор return или когда достигается закрывающая скобка завершения функции, он возвращает управление программой обратно в основную программу.

Чтобы вызвать метод, вам просто нужно передать необходимые параметры вместе с именем метода, и если метод возвращает значение, вы можете сохранить возвращаемое значение. Например —

Live Demo

#import <Foundation/Foundation.h>

@interface SampleClass:NSObject
/* method declaration */
- (int)max🙁int)num1 andNum2🙁int)num2;
@end

@implementation SampleClass

/* method returning the max between two numbers */
- (int)max🙁int)num1 andNum2🙁int)num2 {

   /* local variable declaration */
   int result;
 
   if (num1 > num2) {
      result = num1;
   } else {
      result = num2;
   }
 
   return result; 
}

@end

int main () {
   
   /* local variable definition */
   int a = 100;
   int b = 200;
   int ret;
   
   SampleClass *sampleClass = [[SampleClass alloc]init];

   /* calling a method to get max value */
   ret = [sampleClass max:a andNum2:b];
 
   NSLog(@"Max value is : %d\n", ret );
   return 0;
}

Я сохранил функцию max () вместе с функцией main () и выполнил исходный код. Запустив финальный исполняемый файл, он даст следующий результат:

2013-09-07 22:28:45.912 demo[26080] Max value is : 200

Аргументы функции

Если функция должна использовать аргументы, она должна объявлять переменные, которые принимают значения аргументов. Эти переменные называются формальными параметрами функции.

Формальные параметры ведут себя как другие локальные переменные внутри функции и создаются при входе в функцию и уничтожаются при выходе.

При вызове функции существует два способа передачи аргументов в функцию:

Sr.No. Тип звонка и описание
1 Звонок по значению

Этот метод копирует фактическое значение аргумента в формальный параметр функции. В этом случае изменения, внесенные в параметр внутри функции, не влияют на аргумент.

2 Звоните по ссылке

Этот метод копирует адрес аргумента в формальный параметр. Внутри функции адрес используется для доступа к фактическому аргументу, используемому в вызове. Это означает, что изменения, внесенные в параметр, влияют на аргумент.

Этот метод копирует фактическое значение аргумента в формальный параметр функции. В этом случае изменения, внесенные в параметр внутри функции, не влияют на аргумент.

Этот метод копирует адрес аргумента в формальный параметр. Внутри функции адрес используется для доступа к фактическому аргументу, используемому в вызове. Это означает, что изменения, внесенные в параметр, влияют на аргумент.

По умолчанию Objective-C использует вызов по значению для передачи аргументов. В целом это означает, что код внутри функции не может изменять аргументы, используемые для вызова функции, и в приведенном выше примере при вызове функции max () использовался тот же метод.