2010-06-03 2 views
1

안녕하세요 저는 iphone을 처음 사용하고 Obj c를 배우기 시작합니다. + (ID) requestWithURL : (NSURL *) theURLobj 함수에서 (+)와 (-) 연산자의 차이점

- (+) 및 일부 기능에 대해 우리는 (+)를 사용하고

난 일부 기능에 대한 우리가 사용하고,이 함수의 정의를 통지해야

- initWithURL :

두 연산자/기호의 차이점은 무엇입니까?

감사합니다.

답변

10

클래스 정의의 컨텍스트에서 +/-은 메서드가 인스턴스 또는 클래스 수준 메서드인지 여부를 결정합니다.

+은 메서드가 클래스 수준이므로이를 호출하기 위해 인스턴스가 필요하지 않음을 나타냅니다.

-은 메서드가 인스턴스 메서드이며 개체 인스턴스를 통해 호출되어야 함을 나타냅니다. 인스턴스 메서드에 호출 할 필요가

[NSString stringWithFormat: @"Your age is %d", age]; 

:

정적 (+) 방법의 일반적인 예는 당신이 그것을 호출 할 때, 당신은 인스턴스없이 그렇게 할 것이 아니라 클래스 이름을 사용 NSString::stringWithFormat입니다 적절한 객체의 인스턴스는 하나의 예가 될 것이다 :

NSString *s = @"oop:ack:zonks::ponies"; 
int len = [s length]; // instance method called 

이러한 심볼은 이진 또는 단항 arith의 일부로서 적용될 수있는 수학적 연산자와 +-과 혼동되어서는 안된다 유창한 표현.

+0

자세한 설명을 읽어 주셔서 감사합니다. – Ram

3

+ = 정적 메소드 (즉, 당신이 메서드를 호출하는 클래스의 인스턴스를 필요로하지 않습니다 -하지만 당신은 그런 비 정적 멤버 변수 또는 아무것도 사용할 수 없습니다)

- = 인스턴스 방법

+0

감사합니다. – Ram

관련 문제