Цель c разницей между функциями и методами - PullRequest
23 голосов
/ 13 июля 2011

Есть ли существенная разница между функциями и методами в Objective -C?

Ответы [ 2 ]

71 голосов
/ 13 июля 2011

Во-первых, я новичок в Objective-C, но я могу сказать то, что знаю.

Функции - это блоки кода, которые не связаны с объектом / классом, просто унаследованы от c, и вы вызываете их следующим образом:

// declaration
int fooFunction() {
    return 0;
}

// call
int a;
a = fooFunction();

Хотя методы прикреплены к классу / экземпляру (объекту), и вы должны указать классу / объекту выполнить их:

// declaration
- (int)fooMethod {
    return 0;
}

// call
int a;
a = [someObjectOfThisClass fooMethod];
5 голосов
/ 13 июля 2011

еще проще;метод - это просто функция C, причем первые два аргумента являются целью вызова метода и вызываемого селектора, соответственно.

Т.е. каждый отдельный сайт вызова метода может быть переписан как эквивалентный вызов функции Cабсолютно без разницы в поведении.

Подробный ответ здесь: Почему [объект doSomething], а не [* объект doSomething]? Начните с абзаца, который говорит: «Возвращаясь к корням препроцессора языка C, вы можете перевести каждый методвызов эквивалентной строки C ".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...