2011-11-02 2 views
1

Big Nerd Ranch의 "Objective-C Programming"책을 읽고 차별화에 대해 확신하지 못했습니다.Objective-C 함수와 Objective-C 메서드의 차이점은 무엇입니까?

컨텍스트 : NSLog()는 printf()와 매우 유사하게 작동하는 Objective-C 함수입니다 (메서드가 아닙니다!). 그러나 NSLog()에서 형식 문자열은 실제로 NSString의 인스턴스입니다.

+1

복제 http://stackoverflow.com/questions/6672352/objective-c-difference-between-functions-and-methods –

답변

7

방법클래스의 일부로 정의 된 함수입니다. NSLog 또는 printf과 같은 일반 함수는 클래스에 속하지 않습니다.

2

"Objective-C 함수"같은 것은 없습니다. NSLog는 라이브러리의 다른 표준 함수와 같은 함수입니다. Objective-C 객체를 사용하는 경우가 있지만 포인터는 C 코드와 상호 작용할 수있는 포인터입니다. NSLog에 대해서는 '특별한'것이 없습니다.

반면에 메소드는 Objective-C 클래스의 일부입니다.

1

메서드는 클래스 & 개체에 속하며 메시지 전달을 통해 호출됩니다. 함수는 특정 클래스 또는 객체에 연결되지 않으며 정확히 C에서와 동일하게 작동합니다.

1

Obj-C의 함수는 특정 클래스로 범위가 지정되지 않지만 메소드는 클래스로 범위가 지정됩니다.

관련 문제