今天再写程序的时候,弹出UIAlertView 调用show方法的时候竟然报了 EXC_BAD_ACCESS的错误。
肯定不是先release 了,再调用的情况
实在是无法理解,随即把代码copy到一个干净的工程里跑了下,完全没有问题,然后突然想起来,只有主线程才有权限更改UI,这个UIAlertView会不会也是属于UI的更新呢,于是调用方法 performSelectorOnMainThread 方法,去主线程掉用显示UIAlertView的方法,果然好了。
记录下来,怕以后忘了。
下面是代码,这个弹出的UIAlertView是会自动关掉的
- (void) showAutoClearMessage:(NSString*) message
{
if ([NSRunLoop currentRunLoop] != [NSRunLoop mainRunLoop]) {
NSLog(@"<< perform in main thread>>");
[self performSelectorOnMainThread:@selector(showAutoClearMessage:) withObject:message waitUntilDone:NO];
return;
}
autoClearAlert = [[UIAlertView alloc]
initWithTitle:@"" message:message
delegate:self cancelButtonTitle:nil
otherButtonTitles: nil];
[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector: @selector(performDismiss:)
userInfo:nil repeats:NO];
[autoClearAlert show];
}
- (void) performDismiss: (NSTimer *)timer
{
[autoClearAlert dismissWithClickedButtonIndex:0 animated:NO];
[autoClearAlert release];
autoClearAlert = NULL;
}
分享到:
相关推荐
在iOS开发中,`UIAlertView`是苹果提供的一种用于显示警告或提示用户信息的视图控件。这个`Displaying-Alerts-with-UIAlertView.zip`压缩包包含了一个关于如何在MacOS环境中使用Objective-C来实现`UIAlertView`的...
在iOS开发中,UIAlertView是苹果提供的一个用于展示警告或询问用户简单信息的原生控件。然而,随着Swift和Objective-C的发展,UIAlertView逐渐被UIAlertController所取代,因为后者提供了更强大的自定义能力和更好的...
标题"UIAlertView_block"表明我们讨论的是对`UIAlertView`的一个Block版本的封装。 在传统的`UIAlertView`使用中,我们需要遵循`UIAlertViewDelegate`协议,并实现`alertView:clickedButtonAtIndex:`等方法来监听...
在iOS开发中,UIAlertView是苹果提供的一个用于显示警告或确认信息的系统对话框。它通常包含一个标题、一条消息和一到两个按钮。然而,早期的UIAlertView并不支持直接通过Block来处理用户点击事件,而是使用Delegate...
在iOS开发中,`UIAlertView`是苹果提供的一种用于显示简单警告信息或用户确认操作的原生弹窗。然而,系统默认的`UIAlertView`存在一定的局限性,比如它最多只支持两个按钮,并且按钮布局固定,这在某些场景下可能...
### UIAlertView Class 详解 #### 概述 `UIAlertView` 是 iOS 开发中用于向用户展示警告消息的一个类。它在外观上与 `UIActionSheet` 类似但有所区别。通过这个类提供的属性和方法,开发者可以设置警告框的标题、...
在iOS开发中,UIalertView是苹果提供的一种原生控件,用于向用户显示警告或确认信息,通常包含一个标题、消息文本以及一个或多个按钮。在这个"ios-UIalertView.zip"压缩包中,我们可能找到了一个针对UIAlertView的...
在iOS开发中,UIAlertView是苹果提供的一种用于向用户展示简单警告信息或进行简单交互的UI组件。它通常在用户触发某一操作,如点击按钮、网络错误等情况下出现。然而,有时候开发者可能会遇到UIAlertView自动消失的...
在iOS开发中,UIAlertView曾是系统提供的一种用于展示警告或提示信息的标准组件,但在iOS 8之后被UIAlertController所取代。然而,在某些场景下,开发者可能仍需要自定义UIAlertView来实现特定的界面风格或者功能...
在iOS开发中,UIAlertView曾是用于显示警告或确认消息的标准组件,但在iOS 8之后,苹果引入了新的UIPresentation API,弃用了UIAlertView,并推荐使用UIAlertController。因此,“UIAlertView的替代品”这一主题主要...
在iOS开发中,`UIAlertView`是苹果提供的一种用于向用户显示简单警告或确认信息的UI组件。这个组件在Swift编程语言中广泛应用于弹出视图的场景,例如提示用户保存数据、确认操作或者显示错误信息。`UIAlertView`虽然...
在iOS开发中,UIAlertView是苹果提供的一种用于向用户展示简单信息或进行选择的原生对话框。它通常出现在屏幕中央,显示一条或多条文本,并可能包含一个或多个按钮供用户进行交互。然而,UIAlertView默认的文本对齐...
UIAlertView是iOS平台上一个用于显示警告或用户交互的视图,通常在用户需要确认操作、输入信息或者接收系统消息时出现。这个小例子将详细介绍如何在iOS应用中使用UIAlertView,包括其基本用法、按钮事件处理以及带有...
在iOS开发中,`UIAlertView`是苹果提供的一种用于显示简单警告对话框的UI组件,通常包含一个标题、一条消息和一到两个按钮。在早期版本的iOS中,`UIAlertView`的事件处理通常需要通过实现其代理方法来完成,这增加了...
在iOS8及之后的版本中,苹果推荐开发者使用`UIAlertController`来替换`UIAlertView`,因为`UIAlertController`提供了更强大的功能和更好的自定义性。 `UIAlertView`在早期的iOS版本中是用于展示警告或提示用户信息...
在iOS开发中,`UIAlertView`和`UIAlertController`是两种常用的弹窗组件,用于向用户展示警告信息或者进行简单的交互。这两个组件在不同版本的iOS系统中有着不同的使用方式和表现形式。本篇将深入探讨如何实现`...
UIALertView是一款针对iOS平台的第三方警告视图库,它为开发者提供了更灵活和自定义的选项,以便在应用程序中展示警告或对话框。在iOS原生的UI设计中,UIAlertController是系统提供的用于显示警告视图和行动选择的...
https://github.com/STShenZhaoliang/STAlertView 400行写的自定义UIAlertView,没有开太多接口,大家可以自由修改。
在iOS开发中,`UIAlertView`曾经是用于展示警告或询问用户简单信息的常见组件,而`UITableView`则是显示可滚动列表的视图。当需要在警告视图中展示更复杂的信息,比如一个列表,开发者可能会将`UITableView`与`...