Jor*_*anD 1 iphone objective-c uiviewcontroller ios
当我尝试从另一个类调用getter方法"gender"和"teamName"时(通过创建TeamsViewController类的实例并调用该实例上的方法),这些方法返回null.为什么是这样?
谢谢你的帮助.
@interface TeamsViewController () {
NSString *teamName;
NSString *gender;
}
@end
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
gender = @"boys";
teamName = @"Basketball";
}
-(NSString *)gender {
NSLog(@"returning %@",gender);
return gender;
}
-(NSString *)teamName {
NSLog(@"returning %@",teamName);
return teamName;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (onBoys==true) {
gender = @"boys";
}
else {
gender = @"girls";
}
[self performSegueWithIdentifier:@"teamsPushSegue" sender:self];
}
TeamsViewController *teamsInstance = [[TeamsViewController alloc]init];
[teamsInstance gender];
Run Code Online (Sandbox Code Playgroud)
使用以下命令创建类的实例:
TeamsViewController *teamsInstance = [[TeamsViewController alloc] init];
Run Code Online (Sandbox Code Playgroud)
不会调用viewDidLoad初始化这些实例变量的方法.
而是在init方法中初始化它们:
- (id)init {
self = [super init];
if (self) {
gender = @"boys";
teamName = @"Basketball";
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
但是,您可能想要覆盖的方法是initWithNibName:bundle:,您可能希望完全避免调用该init方法.
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |