Iphone UIAlert代理,他们是否与应用程序的其他部分发生冲突?
我试图将UIAlert添加到我的应用程序中,但它开始导致崩溃 所以我注释掉了我的代码,只留下了这个方法Iphone UIAlert代理,他们是否与应用程序的其他部分发生冲突?,iphone,objective-c,uialertview,Iphone,Objective C,Uialertview,我试图将UIAlert添加到我的应用程序中,但它开始导致崩溃 所以我注释掉了我的代码,只留下了这个方法 -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { } 并添加了接口 <UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, UIAlertViewDelegate > 但是
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
}
并添加了接口
<UITableViewDelegate, UITableViewDataSource, UITextFieldDelegate, UIAlertViewDelegate >
但是当应用程序中已经存在的警报弹出时,即使它在应用程序的另一个类中。我一按警报上的ok键,它就会崩溃
是否有一些我从未遇到过的与警报的奇怪冲突
任何能提出可能发生的事情的人。应用程序崩溃,没有任何输出到调试控制台。所以没有任何问题的迹象
谢谢
-代码否,与警报没有奇怪的冲突。如果选中
标记
属性并在委托中检查该属性,您甚至可以从单个类获得多个警报
通常,崩溃表示您过早释放了代理。当您添加代理时,它不会保留它(以避免释放周期),因此您必须手动确保在按下按钮时它仍然存在
您可以通过在所有委托方法中放置断点来验证这一点。否,与警报没有奇怪的冲突。如果选中
标记
属性并在委托中检查该属性,您甚至可以从单个类获得多个警报
通常,崩溃表示您过早释放了代理。当您添加代理时,它不会保留它(以避免释放周期),因此您必须手动确保在按下按钮时它仍然存在
您可以通过在所有委托方法中设置断点来验证这一点。基于您对上述注释的回答。看起来您的委托对象提前发布了。我不确定您如何声明UIAlert,但通常我喜欢这样
-(void) showSomething
{
UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"title here"
message:@"message here."
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Settings", nil] autorelease];
[av show];
}
希望对您有所帮助。基于您对上述评论的回答。看起来您的委托对象提前发布了。我不确定您如何声明UIAlert,但通常我喜欢这样
-(void) showSomething
{
UIAlertView *av = [[[UIAlertView alloc] initWithTitle:@"title here"
message:@"message here."
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"Settings", nil] autorelease];
[av show];
}
希望对您有所帮助。可能您应该先尝试查看控制台输出。您好Jirapong。正如我所说:应用程序崩溃,没有任何输出到调试控制台。如果控制台给了我一个提示,我就不会要求你们的直觉来判断可能发生了什么。没有提示的崩溃通常是一个过度释放的问题,或者将指针记录为INT。你的问题可能更多地与原始警报有关-你能在创建两个警报的地方发布代码吗?你说“警报”是什么意思这已经在应用程序pops中了,即使它在应用程序“”的另一个类中??可能你应该先尝试查看控制台输出。嗨,Jirapong。正如我所说:应用程序崩溃,没有任何输出到调试控制台。如果控制台给了我一个提示,我就不会要求你们的直觉来判断可能发生了什么。没有提示的崩溃通常是一个过度释放的问题,或者将指针记录为INT。你的问题可能更多地与原始警报有关-你能在创建两个警报的地方发布代码吗?你说“警报”是什么意思这已经在应用程序pops中了,即使它在应用程序“”的另一个类中??