2009-10-27 3 views
3

인스턴스 속성을 선언하려면 다음과 비슷한 선언을 사용할 수 있습니다.Objective-C에서 클래스 속성을 정의 할 수 있습니까?

@property (readonly) int size; 

나중에 도트 구문을 사용하여 속성에 액세스 할 수 있습니다.

NSLog(@"The object has a size of: %d", objectInstance.size); 

그러나 클래스를 선언하고 싶습니다. 그래서 인스턴스가 없어도이 방법으로 액세스 할 수 있습니다. 예를 들어 :

NSLog(@"%d instances have been created.", ClassName.numberOfInstances); 

클래스 메시지를 사용하여이 동작을 구현할 수 있고 어쨌든 점 구문을 사용하여 호출 할 수 있지만 선언 된 속성을 선호하고 @synthesize 지시문의 일부를 활용할 수 있음을 알고 있습니다. 속성.

가능합니까?

답변

3

짧은 대답은 그렇지 않다는 것입니다. 컴파일러는 그렇게 할 수 없습니다. 애플은 (UIView 암시 적 애니메이션 매개 변수와 같이) 비슷한 것을해야 할 때 KVC 준수 명명을 사용한다는 것을 알 수 있습니다. put을 속성으로 선언하지 마십시오.

더 긴 대답은 클래스가 객체라는 것이며 실제로 할 수있는 프록시 리디렉션과 관련된 꽤 괴상한 해킹을 상상할 수 있지만 실제로는 권장하지 않는 것입니다.

관련 문제