2012-06-03 3 views
-1

가능한 복제를?
What do the plus and minus signs mean in Objective C next to a method?목표 - C : 무엇을 "+ (CCScene *) 함수는 {...} 의미

나는 아이폰 OS에 대해 배울 계속, I 이 예제에서 나는 +(CCScene *)function {...}을 사용하여 예제 코드를 작성했다. 그 방법은 -(ObjectType*)function {...}과 같이 - 인 inObj-C로 구현되었다는 것을 이해한다. 그러나 궁금하다. 무엇보다 +이 먼저 나온다. 명백한 기능 n 구현은 나타 납니까?

+0

'+'는 클래스 메소드를 나타내고 '-'는 인스턴스 메소드를 나타냅니다. –

+0

dup [방법 옆의 목표 C에서 + 기호가 의미하는 것은 무엇입니까?] (http://stackoverflow.com/questions/2097294/what-do-the-plus-and-minus-signs-mean- in-objective-c-next-to-a-method) – outis

답변

2

인스턴스 메서드 (또는 Objective-C의 메시지)는 -으로 시작합니다. 클래스 메서드는 +으로 시작합니다. 차이점은 클래스 메시지가 클래스 자체에 전송되는 동안 해당 인스턴스 메시지가 특정 클래스의 객체로 전송 될 수 있다는 것입니다.

국가라고하는 클래스가 있다고합시다. 그런 다음 인스턴스 이름이 name 또는 area 인 인스턴스 메시지가 표시 될 수 있습니다. 그러면 국가 인스턴스의 이름이나 영역이 반환됩니다.

NSString *name = [someCountry name]; 
// name could be "Germany" or "France" for instance. 

는 또한 국가 인스턴스의 총 수를 반환하는 numberOfCountries 수준의 메시지를 가지고 있습니다.

int totalCount = [Country numberOfCountries]; 
1

'+'는 클래스 메소드를 나타내고 '-'는 인스턴스 메소드를 나타냅니다. 따라서 +(CCScene *)function {...}은 클래스 메소드입니다.

인스턴스 메소드는 객체에서 작동하고 인스턴스 변수에 액세스 할 수 있지만 클래스 메소드는 클래스 전체에서 작동하며 특정 인스턴스 변수에 대한 액세스 권한이 없습니다 (매개 변수로 인스턴스를 전달하지 않은 경우).

자세한 내용은 Stackoverflow의 "Class vs Instance Methods?"을 참조하십시오.