我想在classB
上使用classA的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";
Xcode发送此错误:内部编译器错误:分段错误
或者,还有另一种方法吗?这个问题让我感到害怕!
提前致谢
答案 0 :(得分:1)
您是否直接从XCode复制并粘贴此内容?你的代码看起来很奇怪
- ClassB.m不应包含ClassA的实现(这应该转到ClassA.m)
- 你可能不想要ClassA.myLabel.text,但是instance_of_ClassA.myLabel.text
如果这没有用,请您提供更多信息?
答案 1 :(得分: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 ++)