Подтвердить что ты не робот

Объективная с разница между функциями и методами

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

4b9b3361

Ответ 1

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

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

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

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

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

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

// call
int a;
a = [someObjectOfThisClass fooMethod];

Ответ 2

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

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


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