[英]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.