Есть ли какая-либо существенная разница между функциями и методами в Objective -C?
Объективная с разница между функциями и методами
Ответ 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".