強力な ivar を必要としない UIAlertView に似たクラスを作成したいと考えています。
たとえば、UIAlertView を使用すると、UIViewController のメソッドの 1 つで次のことができます。
UIAlertView *alertView = [[UIActionSheet alloc] initWithTitle:nil
message:@"Foo"
delegate:nil
cancelButtonTitle:@"Cancel"
otherButtonTitles:nil];
[alertView show];
... そして、actionSheet は、表示されなくなるまで解放されません。
私が同じことをしようとした場合:
MYAlertView *myAlertView = [[MYAlertView alloc] initWithMessage:@"Foo"];
[myAlertView show];
...myAlertView
インスタンスは、現在のメソッドの最後 (たとえば、行の直後[myAlertView show]
) で自動的に割り当て解除されます。
myView を UIViewController のプロパティとして宣言することなく、これを防ぐ適切な方法は何strong
ですか? (つまり、myView をインスタンス変数ではなくローカル変数にしたい。また、ライフサイクルを制御する UIViewController ではなく、MYAlertView インスタンスが独自のライフサイクルを担当するようにしたい。)
更新: MYAlertView は NSObject から継承されるため、Views 階層に追加することはできません。