@interface Test: NSObject
{
}
- (id)initObject:(id)obj;
@end
위 인터페이스의 초기화 메소드에서 반환값이 id 타입이라고 되있는데 id 타입은 Test 클래스를 가르키는건가요?
객체 내 메소드에서 객체 자신을 가르킬때 self를 쓰듯이 객체의 클래스 타입을 쓸때 Test라고 안쓰고 id라고 써도 되는건가요?
그리고 책에서 어떤 객체가 특정 클래스의 인스턴스라는걸 명시해야 할 필요가 있을때 Foo 타입으로 기술한다는데 예제를 보니
Volume *v;
이런식으로 객체의 포인터 형식으로 표시하네요. Foo 타입이 id 타입처럼 객체 내에서 반환값이나 인자값으로 어떤 클래스 타입을 받을때 그 클래스 이름 대신에
- (Foo *)method:(Foo *)obj;
같이 받을 수 있다는 말인가요?
보이드라고 보면쉬울듯 ⓑ
아, 그러면 보이드와의 차이는 보이드는 아무것도 받을 수 없고 id는 아무거나 받는다, 그런 의미가 되나요?
id는 객체포인터라고 생각하셈 ⓑ
기본데이터형에 쓰면 지옥 ⓑ
아 답변해주셔서 감사합니다.
dynamic이랑 비슷한거라고 생각하셈 무적
어디서 들리는 말로는 #define (void *) id로 선언해 놨다는 소리가..... ⓑ
써니덕후/ 엌ㅋ 왠지 그럴싸하다....