在viewDidLoad外部时为NULL自定义类对象



u1Option是一个Option(自定义类)对象在我的ViewController视图DidLoad中声明并调用为:

- (void)viewDidLoad  {
    [super viewDidLoad];
    Option *u1Option = [[Option alloc]init];
    [u1Option setName: @"test"];
    NSLog(@"Test1 Result: %@", u1Option.name);
}

Option是一个从NSObject继承的自定义类,具有在Option.h:中声明的属性

@property NSString *name;

然而,如果尝试在IBAction中使用u1Option,则不会传递任何内容,并且当我获得";测试";字符串,相反,我在Test2NSLOG中得到NULL。

- (IBAction)addFirstOption:(UIButton *)sender {
    NSLog(@"Test2 Result: %@", u1Option.name);
}

viewDidLoad一返回,Option实例就会被销毁。您需要将其放入属性或实例变量中。如果它已经是一个属性或实例变量,那么您正在重新定义它,所以使用:

u1Option = [[Option alloc] init];

并且将来使用self.u1Option_u1Option可以避免这个问题。

最新更新