2013-12-16 1 views
-1

id는 객체의 유형입니다. 유형은 예를 들어 NSArray * 또는 NSString * 일 수 있습니다. 클래스는 NSArray * 또는 NSString * 또는 다른 개체 일 수 있습니다.식별자 ID와 클래스 사이에 다른 점은 무엇입니까?

나는

- (void)wantWriteAction:(id)sender { 
} 

- (void)wantWriteAction:(Class)sender { 
} 

내가 ID를 사용할 수 없습니다 어떤 조건 them.In 사이의 서로 다른 알고 싶은가? 어떤 조건 클래스를 사용할 수 없습니다에 따라 그들처럼 사용할 수 있습니까?

+0

http://stackoverflow.com/questions/7256989/casting-sender-to-ibaction-as-id-or-specific-class – the1pawan

+0

id는 무엇이든 될 수 있으며 시스템의 모든 메시지에 응답 할 수 있지만 클래스는 응답 할 수 있습니다. 특히. ID는 일반적입니다. – the1pawan

답변

1

id은 모든 클래스의 인스턴스를 나타냅니다. Class은 인스턴스가 아닌 클래스 자체를 나타내는 클래스입니다.

그래서 idNSString 또는 NSArray의 특정 인스턴스가 될 수 있습니다. 문서에서 -으로 표시되는 인스턴스 메서드 (예 : -length 또는 -stringByAppendingFormat)를 호출 할 수 있습니다. idNSString 인 경우 그 값은 @"foo" 일 수 있습니다.

ClassNSString 클래스 또는 NSArray 클래스 일 수 있습니다. 문서에서 +으로 표시되는 클래스 메서드 (예 : +stringWithFormat)를 호출 할 수 있습니다. ClassNSString (참고,하지 NSString하지만 NSString 클래스) 인 경우는 문자열 아니기 때문에 그것은, 어떤 문자열 값이 없습니다. 그것은 수업입니다.

관련 문제