1

我想在 classB 上使用 classA 的 IBOutlet

为什么这不起作用?

类A.h

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

B类.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++ 编码器编写的。不要越过溪流。这是一个古老的问题,但我无法抗拒修复这样一个基本错误。

类A.h

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

B类.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 回答