2013-01-23 2 views
0

나는 자식 객체에 self이라는 참조를 전달해야하는 Objective-C에서 작업하고 있습니다. 예를 들어 Java에서 내가 말할 수있는 방법으로 이것을 수행한다면 room.place(this); Objective-C에서 어떻게하면 좋을까요? 나는 self을 메소드 매개 변수로 전달할 수 있지만 자식 객체는 #import 다른 클래스에 있어야하며 둘 다 서로 가져올 때 오류가 발생하기 시작합니다. 어떤 도움을 주시면 감사하겠습니다.Objective-C - 자손 객체에 대한 참조 전달

+1

자식 클래스에서 .h 대신 .m 파일에 #import를 쓸 수 있습니다. 어떤 문제도 없을 것입니다. – Sumanth

+3

1) 헤더 파일 중 적어도 하나에서 forward 선언문을 사용해야합니다. 2) 잘못된 디자인입니다. 델리게이트를 사용해야합니다. – Perception

답변

4

두 클래스가 서로 다른 헤더 파일을 가져와야하는 경우에는 전달 선언을 사용할 수 있습니다. 평소와 같이 자식하는 .m 파일에서

@class MyParentClass; // This is the forward declaration. 

@interface MyChildClass 
@property (nonatomic, strong) MyParentClass *parent; 
@end 

, 당신은 것 #import "MyParentClass.h" :이 작품

하는 방법은과 같이 그것을 설정합니다 자식 헤더 파일에 있습니다. 그러면 MyParentClass.h에서 다음을 수행 할 수 있습니다. #import "MyChildClass.h"

+0

이것이 효과가있는 것처럼 보입니다. 전방 선언은 결코 배웠던 것이 아니었지만 이것은 합리적입니다. – Slayter

1

#import 클래스가 아닙니다. 너 #import 파일 - 반드시 헤더. 각 클래스의 .m 파일은 다른 클래스의 .h 파일을 가져와야하며 정상적으로 작동합니다.

관련 문제