簡體   English   中英

在 viewDidLoad 之外時為 NULL 自定義類對象?

[英]NULL Custom Class Objects when outside viewDidLoad?

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,則不會傳遞任何內容,而當我在 Test1 NSLOG 中獲得“test”字符串時,相反,我在 Test2 NSLOG 中獲得了 NULL。

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

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

一旦viewDidLoad返回, Option實例就會被銷毀。 你需要把它放在一個屬性或實例變量中。 如果它已經是一個屬性或實例變量,那么你正在重新定義它,所以使用:

u1Option = [[Option alloc] init];

將來可以通過使用self.u1Option_u1Option來避免這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM