Iphone I';NSM是符合UIAlertViewDelegate协议的对象-是否适合释放我自己?

Iphone I';NSM是符合UIAlertViewDelegate协议的对象-是否适合释放我自己?,iphone,objective-c,release,uialertview,self,Iphone,Objective C,Release,Uialertview,Self,我有一个子类NSObject(MyCustomObject),它被实例化和调用以执行一些逻辑并决定是否显示UIAlertView。MyCustomObject实现UIAlertViewDelegate协议以执行更多逻辑,并在alertView:ClickedButtonIndex:中设置一些NSUserDefaults。 在哪里发布myCustomObject合适?如果用户单击“警报”视图上的一个按钮后不再需要myCustomObject,则myCustomObject可以在alertView:

我有一个子类NSObject(MyCustomObject),它被实例化和调用以执行一些逻辑并决定是否显示UIAlertView。MyCustomObject实现UIAlertViewDelegate协议以执行更多逻辑,并在alertView:ClickedButtonIndex:中设置一些NSUserDefaults。 在哪里发布myCustomObject合适?如果用户单击“警报”视图上的一个按钮后不再需要myCustomObject,则myCustomObject可以在alertView:didDismissWithButtonIndex:中释放自己

- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
    NSLog(@"I'm UIAlertView's Delegate and I'm releasing myself");
    [self release];
}

我认为最好为自定义对象创建一个委托协议,然后让该对象的所有者成为其委托。在类的alert view委托方法中,向自定义委托发送一条消息,以便它能够处理释放自定义对象的问题


如果对象在调用代码中自动释放,或者调用代码试图手动释放对象本身,尝试自我释放可能会产生意外行为,甚至崩溃。

BC,每当我这样做时,我都会觉得自己是一个可卡因瘾君子,也喝醉了。太乱了。。。“嘿,你,请释放我,好吗?”我不知道。为什么不让它自己释放-如果它是一个自包含的逻辑块,为什么要构建额外的东西层来释放它?感谢BoltClock,你的技术也让静态分析器很高兴(目前它认为我在泄漏,因为调用代码没有释放myCustomObject)。调用代码是视图控制器。将myCustomObject设置为ivar,然后在我的视图控制器的dealloc方法中释放它会更整洁吗?