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

时间:2014-09-07 16:42:28

标签: ios objective-c variables properties automatic-ref-counting

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

- (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,则不会传递任何内容,而当我得到" test" Test1 NSLOG中的字符串,相反,我在Test2 NSLOG中得到NULL。

- (IBAction)addFirstOption:(UIButton *)sender {

    NSLog(@"Test2 Result: %@", u1Option.name);
}

很遗憾,我无法在其他帖子中找到任何答案。 Tnxs提前。

1 个答案:

答案 0 :(得分:2)

Option实例在viewDidLoad返回后立即销毁。您需要将它放在属性或实例变量中。如果它已经是属性或实例变量,那么您将重新定义它,因此请使用:

u1Option = [[Option alloc] init];

以后可以使用self.u1Option_u1Option来解决此问题。