私は iPhone アプリをプログラミングしていますが、メソッドの 1 つでメモリ管理について質問がありました。私は手動でメモリを管理することにまだ少し慣れていないので、この質問が初歩的なものに思えたら申し訳ありません。
以下は、数字パッドがタグに基づいてラベルにボタンを配置できるように設計されたメソッドです。この方法では、ボタンごとにメソッドを作成する必要はありません。メソッドは正常に機能します。関数で作成した変数を解放する責任があるかどうか疑問に思っています。
いずれかの変数を解放しようとするとアプリケーションがクラッシュするため、メモリに関する自分の責任について少し混乱しています。
メソッドは次のとおりです。
参考までに、変数 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];
}
アプリケーションは最後の 4 行をコメントアウトしても問題なく動作しますが、ここでこれらの変数を解放する必要があるように思えます。私が間違っている場合は、関数で宣言された変数を解放する必要がある場合とそうでない場合について、簡単な説明を歓迎します。ありがとう。