我想创建一个与 UIAlertView 类似的类,它不需要强大的 ivar。
例如,使用 UIAlertView,我可以在我的 UIViewController 的方法之一中执行以下操作:
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 声明为strong
我的 UIViewController 上的属性?(即我希望 myView 是一个局部变量,而不是一个实例变量,并且我希望 MYAlertView 实例负责它自己的生命周期,而不是我的 UIViewController 控制它的生命周期。)
更新:MYAlertView 继承自 NSObject,因此无法添加到 Views 层次结构中。