我不明白如何聲明一個可以在多個方法中訪問的指針。以下代碼使用myContainer
來存儲調用useMyContainer
時使用的數字。如何訪問多個實例方法中的指針?
@interface MyViewController : UIViewController {
NSString *myContainer;
IBOutlet UILabel *display;
}
- (IBAction)storeToMyContainer: (UIButton *)sender;
- (IBAction)useMyContainer: (UIButton *)sender;
@end
@implementation MyViewController
- (IBAction)storeToMyContainer: (UIButton *)sender {
myContainer = sender.titleLabel.text;
}
- (IBAction)useMyContainer: (UIButton *)sender {
[someOtherClass doSomethingWith:[myContainer doubleValue]];
}
@end
我不明白的是,當我以同樣的方式使用display
,我沒有問題。我需要做什麼才能以這種方式訪問useMyContainer
中的myContainer
?
一些想法:我知道這是一個內存管理問題,我幾乎可以肯定顯示屏上正在調用retain
(可能是通過.xib文件?),這就是爲什麼display
掛起足夠長時間才能使用在這兩種方法中。
我知道一個解決方法,涉及到使用雙精度和整數,但我認爲這是凌亂的,因爲我正在上這個課,所以我想知道用這種方法來處理這個問題。
感謝您的幫助!
是否可以'[myContainer release]';在useMyContainer中使用它之後:? – Caborca87
在技術上是的,這將工作。您基本上會立即放棄「myContainer」字段中的值。但是,通過這樣做,您可以在代碼中隱含一個隱含的假設。這個假設是:'useMyContainer:'&&'useMyContainer:'應該在'連續調用'之前調用'storeToMyContainer:'。如果'useMyContainer:'在一行中被調用兩次(不調用'storeToMyContainer:'),則第二次調用將失敗,因爲釋放了'myContainer'字段。 – Guven