2009-07-28 5 views
1

내가 가진 :상호 의존적 객체는

오류 :

@interface A 
@property (nonatomic, retain) B *toB; 
@end 

@interface B 
@property (nonatomic, retain) A *toA; 
@end 

이 날이 제공하는 컴파일러가 이제 '재산권'

전에 예상 지정-규정 목록을, 그것을 이것은 파일을 독립적으로 파싱하는 순서와 관련이있는 것처럼 보입니다. 지적 된 객체가 먼저 선언되는 한 작동합니다.

어떻게해야합니까?

답변

2

@class를 통해 forward 선언문을 사용하여 컴파일러가 아직 인터페이스를 보지 못했던 A라는 클래스가 있음을 알립니다. 예를 들어

:

@class A; 
@class B; 

@interface A 
@property (nonatomic, retain) B *toB; 
@end 

@interface B 
@property (nonatomic, retain) A *toA; 
@end 
+1

여기를 전달-선언 할 필요가 없습니다은 단지 B. A는 이미 B의 선언에 사용되는 시간에 의해 선언되었습니다. – smorgan

+0

고마워, 나는 그런 느낌이 들었다 :-) – mjmdavis