我正在编写一个 iPhone 应用程序,并且在我的一种方法中遇到了关于内存管理的问题。我对手动管理内存还有些陌生,所以如果这个问题看起来很简单,我很抱歉。
下面是一种旨在允许数字键盘根据其标签将按钮放置在标签中的方法,这样我就不需要为每个按钮创建一个方法。该方法工作正常,我只是想知道我是否负责释放我在函数中创建的任何变量。
如果我尝试释放任何变量,应用程序就会崩溃,所以我对我在内存方面的责任感到有点困惑。
这是方法:
仅供参考,变量 firstValue 是我的标签,它是方法中唯一未声明的变量。
-(IBAction)inputNumbersFromButtons:(id)sender {
UIButton *placeHolderButton = [[UIButton alloc] init];
placeHolderButton = sender;
NSString *placeHolderString = [[NSString alloc] init];
placeHolderString = [placeHolderString stringByAppendingString:firstValue.text];
NSString *addThisNumber = [[NSString alloc] init];
int i = placeHolderButton.tag;
addThisNumber = [NSString stringWithFormat:@"%i", i];
NSString *newLabelText = [[NSString alloc] init];
newLabelText = [placeHolderString stringByAppendingString:addThisNumber];
[firstValue setText:newLabelText];
//[placeHolderButton release];
//[placeHolderString release];
//[addThisNumber release];
//[newLabelText release];
}
该应用程序在最后四行被注释掉的情况下运行良好,但在我看来,我应该在这里发布这些变量。如果我错了,我欢迎快速解释一下何时需要释放函数中声明的变量以及何时不需要。谢谢。