首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >公共IBOutlet

公共IBOutlet
EN

Stack Overflow用户
提问于 2011-04-01 17:43:45
回答 2查看 835关注 0票数 1

我想在classB上使用来自classA的IBOutlet

为什么这不起作用?

ClassA.h

代码语言:javascript
运行
复制
@interface ClassA : UIViewController {
           @public IBOutlet UILabel* myLabel;
           }
@property (nonatomic, retain) UILabel* myLabel;
@end

ClassB.m

代码语言:javascript
运行
复制
#import "ClassA.h"
#import "ClassB.h" 
@implementation ClassB
           ClassA.myLabel.text =  @"Any String";

Xcode发送此错误:内部编译器错误:分段错误

或者,有其他方法可以做到这一点吗?这个问题简直要了我的命!

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2011-04-01 17:49:43

你是直接从XCode复制粘贴的吗?你的代码看起来很奇怪。

  • ClassB.m不应包含ClassA的实现(应转到ClassA.m)
  • 您可能不需要ClassA.myLabel.text,但instance_of_ClassA.myLabel.text

如果这还不能解决问题,你能提供更多的信息吗?

票数 1
EN

Stack Overflow用户

发布于 2011-11-04 10:44:36

嗯,这段代码看起来像是由一个C++程序员写的。不要过河。这是一个古老的问题,但我忍不住修复了这样一个基本的错误。

ClassA.h

代码语言:javascript
运行
复制
@interface ClassA : UIViewController {}
@property (nonatomic, retain) IBOutlet UILabel* myLabel; // iVar is created for you by compiler
@end

ClassB.m

代码语言:javascript
运行
复制
#import "ClassA.h"
#import "ClassB.h" 
@implementation ClassB
  -(void)youNeedToBeInsideAMethod {
    classAInstance.myLabel.text =  @"Genius!";
  }
@end

ObjectiveC != C++,反之亦然(当然总会有客观的C++)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5511655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档