我不明白如何声明一个可以在多个方法中访问的指针。以下代码使用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