1

classAのIBOutletをclassBで使用したい

なぜこれが機能しないのですか?

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";

Xcodeはこのエラーを送信します:内部コンパイラエラー:セグメンテーション違反

または、これを行う別の方法はありますか?この問題は私を殺しています!

前もって感謝します

4

2 に答える 2

1

これを XCode から直接コピー & ペーストしましたか? あなたのコードは奇妙に見えます。
- ClassB.m に ClassA の実装を含めないでください (これは ClassA.m に移動する必要があります)
- おそらく ClassA.myLabel.text は必要ありませんが、instance_of_ClassA.myLabel.text は不要です。

これで問題が解決しない場合は、さらに情報を提供していただけますか?

于 2011-04-01T09:49:42.773 に答える
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

ObjectiveC != C++ またはその逆 (もちろん常に Objective C++ があります)

于 2011-11-04T02:44:35.527 に答える