0

下の数字ボタン参照の保持と解放に関して、私が正しく行っているかどうかを知りたかったのです。本「Stephen kochanによるObjective Cでのプログラミング」では、別の例のあるセクションで、送信者が保持している同じオブジェクトへの参照を保持しているため、送信者が他の場所で解放される可能性があるため、currenttitleメソッドを呼び出すと述べていますその場合、割り当て解除された数字ボタンで。ここで私は数字ボタンで保持を呼び出し、その使用後に解放を呼び出しました。よくある例は、この目的のために本物ではないかもしれませんが、この概念は有効ですか? 以下の例のようにオブジェクトを保持するように練習する必要がありますか? 私が間違っていたら、助けてもらえますか? マネージ コードの作成経験がありません。

- (IBAction)clickDigit:(id)sender {
    UIButton *digitButton = (UIButton*)sender;
    [digitButton retain];
    NSLog(@"%@",[digitButton currentTitle]);
    [[self displayOutput] setText:[digitButton currentTitle]];
    [digitButton release];
}

グラシアス。

ええ、例は間違っていました。ID 送信者の代わりに NSString があり、UIButton の代わりに同じ NSString があり、戻り値の型が単に void であるとしましょう。次に、参照を保持している誰かがそれを解放した場合に備えて、安全のために送信者 NSString を保持する必要がありますか。注: 私は ARC を使用していません

4

2 に答える 2

3

保持して解放する必要はありません。

あなたはこのようにすることができます

 - (IBAction)clickDigit:(UIButton *)sender 
 {

    NSLog(@"%@",[sender currentTitle]);
   [[self displayOutput] setText:[sender currentTitle]];

 }
于 2012-07-02T05:16:29.603 に答える
0

あなたがしていることclickDigit:は不必要です。

不要な理由を説明する代わりに、私が適切なメモリ管理テクニックを学んだ場所を直接紹介します: Advanced Memory Management Programming Guide

于 2012-07-02T03:50:13.403 に答える