2011-04-01 6 views
1

classB에 classA의 IBOutlet을 사용하고 싶습니다.공개 IBOutlet

왜 작동하지 않습니까?

ClassA.h

@interface ClassA : UIViewController { 
      @public IBOutlet UILabel* myLabel; 
      } 
@property (nonatomic, retain) UILabel* myLabel; 
@end 

ClassB.m 엑스 코드이 오류 전송

#import "ClassA.h" 
#import "ClassB.h" 
@implementation ClassB 
      ClassA.myLabel.text =  @"Any String"; 

: 내부 컴파일러 오류 : 분할 오류

을 또는이 작업을 수행하는 또 다른 방법이있다? 이 문제는 나를 죽이고있다! 사전에

덕분에

+0

, 즉 아주이다 심각한 문제. 버그를 신고하십시오 : http://bugreport.apple.com/ – dreamlax

답변

1

당신은 엑스 코드에서 & 붙여 넣기이 직접 복사 했습니까? 코드가 이상하게 보입니다.
- 당신은 아마 ClassA.myLabel.text을 원하지 않는,하지만 아무튼 만약 instance_of_ClassA.myLabel.text

- ClassB.m이를 ClassA의 구현 (이 ClassA.m로 이동한다)
를 포함 할 수 없습니다 도움을 주시겠습니까? 좀 더 자세한 정보를 제공해 주시겠습니까?

+0

나는 classA의 헤더와 classB의 구현을 넣었습니다. ClassA에서 classA의 콘센트를 사용하고 싶습니다만, 당신 말이 맞아요. ClassA의 인스턴스 없이는 할 수 없습니다. 고맙습니다.이 문제를 해결하는 또 다른 방법을 찾을 것입니다. – Emas

0

흠, 그 코드는 C++ 코더에 의해 작성된 것처럼 보입니다. 시내를 건너 가지 마십시오. 이것은 고대의 질문이지만 나는 그러한 기본적인 오류를 수정하는 데 저항 할 수 없었다.

ClassA.h

@interface ClassA : UIViewController {} 
@property (nonatomic, retain) IBOutlet UILabel* myLabel; // iVar is created for you by compiler 
@end 

ClassB.m

#import "ClassA.h" 
#import "ClassB.h" 
@implementation ClassB 
    -(void)youNeedToBeInsideAMethod { 
    classAInstance.myLabel.text = @"Genius!"; 
    } 
@end 

오브젝티브 -c! = C++ 또는 그 반대 (물론 항상 목표 C가 ++) 때 컴파일러 충돌

관련 문제