gpt4 book ai didi

iphone - 如何在 iOS sdk 中使用继承

转载 作者:行者123 更新时间:2023-11-28 23:10:08 25 4
gpt4 key购买 nike

刚开始学习iOS编程,对继承有疑惑。有 2 个文件。

第一个文件

标题

#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UILabel *myLabel;
}
@property (nonatomic, retain) IBOutlet UILabel *myLabel;
@end

实现:

#import "ViewController.h"
#import "NewClass.h"
@implementation ViewController
@synthesize myLabel;
#pragma mark - View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
myLabel.text = @"ViewController text!";
NewClass *myClass = [[[NewClass alloc] init] autorelease];
[myClass setLabelText];
}
@end

第二个文件

标题:

#import "ViewController.h"
@interface NewClass : ViewController
-(void) setLabelText ;
@end

实现:

#import "NewClass.h"
@implementation NewClass
- (void) setLabelText {
myLabel.text = @"NewClass text!";
}
-(id)init {
self = [super init];
if (self != nil) {
}
return self;
}
@end

我在 IB 中设置了 myLabel socket 。

为什么当我调用 [myClass setLabelText]; 时没有任何反应?还保留了“ViewController 文本!”在标签 View 上。我的问题在哪里?我如何更改 NewClass

中的 ViewController::myLabel.text

最佳答案

这不是您正在做的继承。在您的 ViewController 实现中,您有以下代码

 NewClass *myClass = [[[NewClass alloc] init] autorelease];
[myClass setLabelText];

这只是创建类 NewClass 的实例并在该实例上设置 labelText。您永远不会显示它或将它添加到 View 中。

关于iphone - 如何在 iOS sdk 中使用继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8488438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com