一段时间后显示 UIAlertView

2023-12-09

我试图在一段时间后显示 UIAlertView (比如在应用程序中执行某些操作后 5 分钟)。如果应用程序已关闭或在后台运行,我已经通知用户。但我想在应用程序运行时显示 UIAlertView。

我尝试按如下方式调度异步,但警报永远弹出:

[NSThread sleepForTimeInterval:minutes];
 dispatch_async(dispatch_get_main_queue(),
       ^{
        UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"title!" message:@"message!" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil];
        [alert show];
        [alert release];
       }
       );

另外,我读到该线程会在 30 到 60 分钟后死亡。我希望能够在超过 60 分钟后显示警报。


为什么不使用NSTimer,为什么在这种情况下需要使用 GCD?

[NSTimer scheduledTimerWithTimeInterval:5*60 target:self selector:@selector(showAlert:) userInfo:nil repeats:NO];

然后,在同一个类中,您会得到如下内容:

- (void) showAlert:(NSTimer *) timer {
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"title!" 
                                                     message:@"message!" 
                                                    delegate:self               
                                           cancelButtonTitle:@"Cancel"
                                           otherButtonTitles:nil];
    [alert show];
    [alert release];
}

另外,如@PeyloW注意到,你可以使用performSelector:withObject:afterDelay: too:

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"title!" 
                                                 message:@"message!" 
                                                delegate:self               
                                       cancelButtonTitle:@"Cancel"
                                       otherButtonTitles:nil];
[alert performSelector:@selector(show) withObject:nil afterDelay:5*60];
[alert release];

EDIT您现在还可以使用 GCDdispatch_after API:

double delayInSeconds = 5;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"title!"
                                                        message:@"message"
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:nil];
    [alertView show];
    [alertView release]; //Obviously you should not call this if you're using ARC
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一段时间后显示 UIAlertView 的相关文章

  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • iOS FacebookSDK + 解析 SDK + GoogleMaps SDK

    我搜索了很多 然后我意识到 ObjC标记那个GoogleMapSDK需要 但不能很好地配合ParseSDK and FacebookSDK 所以我阅读了所有的 stackoverflow 答案并尝试解决我的问题 问题还没有解决 我执行的步骤
  • iOS 确定视频中的帧数

    如果我有一个 Swift 中的 MPMoviePlayerController MPMoviePlayerController mp MPMoviePlayerController contentURL url 有没有办法获取视频中的帧数u
  • 如何使用逗号和行分隔符对字符串进行标记

    我正在 Swift 中制作一个简单的 String Tokenizer 就像在 Java 中一样 但这对我来说确实不起作用 我的数据源中每行的末尾用 分隔 数据用逗号分隔 例如 字符串 1 字符串 2 字符串 3 字符串 1 字符串 2 字
  • 使用 JSONKit 解析 JSON 文件

    我正在构建一个音叉应用程序 货叉应允许最多 12 个预设节距 此外 我希望允许用户选择一个主题 每个主题都会加载一组预设 不必使用所有预设 我的配置文件看起来像这样 theme A3 comment An octave below conc
  • 与 parse-server 和 auth0 的自定义身份验证集成

    我想将 auth0 com 与开源解析服务器结合使用 我当前的方法是通过 iOS 的 Lock 库使用标准登录从 auth0 获取令牌 使用该令牌 我想在解析服务器上调用自定义身份验证方法 该方法检查令牌是否有效 如果有效则将登录用户 我的
  • 调用当前的 Modal ViewController 两次?

    我遇到了 UIViewController presentModalViewController 被调用两次的问题 我有一个模态视图 我试图调出另一个模态视图 但第二次没有任何反应 我怀疑它被隐藏了 还有其他人这样做过吗 您不能在同一个父控
  • gestureRecognizer shouldReceiveTouch 持续存在于已释放的视图中导致崩溃

    我有一个相当简单的 UITableView 它在堆栈上推送一个新视图 新视图有一个像这样初始化的gestureRecognizer synthesize swipeGestureLeft void viewDidLoad swipeGest
  • 加速度计适用于 iphone/ipad 模拟器吗?

    据我所知 当我在 XCode 中使用 iPad 模拟器时 我的应用程序应该会触发加速计事件 但事实并非如此 我用谷歌搜索了一下 似乎加速度计没有在模拟器中实现 这是正确的吗 如果是这样 为什么他们会有 硬件 gt 摇动手势 菜单选项 我的代
  • 检测 iPhone 屏幕是否打开/关闭

    有没有办法检测 iPhone 的屏幕是打开还是关闭 例如 当按下手机的屏幕锁定按钮时 我一直在使用 void applicationWillResignActive UIApplication application 为此类事件做准备 在大
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • iOS绘图3D图形库[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在搜索一个可以帮助我绘制 3D 图表的库 我想要类似的东西这一页 http www math uri edu bkaskosz fla
  • 使用 Dirac 在 iPhone 中进行实时音高变化 [重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 上的实时音调变换 https stackoverflow com questions 1100495 real time pitch shifting on the iphone 我已经
  • 如何在 iPhone 中使用 XMPPFramework 创建 MultiUserChatRoom

    我正在 iPhone 中使用 XMPPFramwwork 开发聊天应用程序 我成功完成了一对一聊天 现在我想在我的应用程序中开发多用户聊天 我尝试了以下代码 但未调用 XMPPRoomDelegate 的任何委托方法 我如何开始创建聊天室
  • 如何将nsmutable数组添加到sqlite数据库表中

    如何将nsmutablearray添加到sqlite数据库表中 有人可以帮我编码吗 您可以使用 for int i 0 i lt mutArray count i NSString string mutArray objectAtIndex
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • Swift - 保存在 TableView 中选择的复选标记

    我对 Swift 相当陌生 并且在 TableView 多重选择方面遇到问题 我有多个选择 可以用复选标记进行检查 类似于待办事项列表 当我检查项目时 我希望能够返回 ListView 并保存我的选择 我假设将其保持在已保存状态的代码将位于
  • TestFlight 安装的应用程序因 Swift 包管理器依赖项而崩溃

    我们已经迁移了一些 CocoaPod 依赖项 以便在 Xcode 11 中使用 Swift Package Manager 进行构建和链接 但是 每当我们将应用程序提交到 AppStore Connect 并使用 TestFlight 进行
  • iOS 中是否需要 Google App Indexing SDK 才能使用 Google DeepLinking?

    我想用谷歌应用程序索引与我的网页和 iOS 应用程序 我支持通用链接 or 深层链接用谷歌术语 与苹果Search并相应地设置我的网页 From 谷歌文档 https developers google com app indexing i

随机推荐

  • Android java使用Comparable自定义排序

    Override public int compareTo final myRow another final int BEFORE 1 final int EQUAL 0 final int AFTER 1 if this another
  • 如何使用 matplotlib 在单个页面上绘制多个绘图?

    我编写了一次打开 16 个数字的代码 目前 它们都作为单独的图表打开 我希望他们在同一页面上打开所有内容 不是同一个图表 我想要在单个页面 窗口上显示 16 个独立的图表 此外 由于某种原因 numbins 和 defaultreallim
  • 按类别名称搜索

    当我尝试按类别名称进行搜索时 它什么也没有返回 例如 我有有机 独特 体育等类别 在搜索中我输入独特 但我没有得到任何结果 不幸的是 Magento 的默认搜索功能是产品搜索 并且仅限于该范围 当您搜索 Unique 时 它会查找产品名称
  • Reporting Services 表达式在某些情况下会出错

    在报告的摘要行中计算平均值时出现错误 我的表情是这样的 IIF SUM Fields column3 Value gt 0 Format DateAdd s SUM Fields column4 Value SUM Fields colum
  • 在pygame中检查歌曲是否播放完毕

    有什么方法可以判断 pygame 中的歌曲是否已播放完毕 这是代码 from tkinter import import pygame root Tk pygame init def play pygame mixer music load
  • Visual Studio 2010 局部变量历史记录

    我正在调试一个具有多个嵌套循环的进程 这些循环会更改几个不同的局部变量 我可以通过一次迭代一次来观看这些内容 但这非常乏味 而且我正在忘记自己的位置 我根本没有时间每次都记下每个变量 有没有办法可以查看局部变量的历史记录 一个插件 如果没有
  • 在 xsl 变量中存储 html 标签

    抱歉 如果这是一个愚蠢的问题 但是可以在 xsl 1 0 变量中存储和检索 HTML 片段吗 例如
  • 在 Vagrant 配置期间使用 Sed 将行追加到文件

    我目前正在使用Vagrant设置运行 Ubuntu 的开发机器 我想在我的中添加几行 profile将目录添加到我的 PATH变量 使用sed 为此 我将这些行添加到我的机器中Vagrantfile config vm provision
  • 左值整型常量表达式是常量表达式吗?

    N4527 5 20 表达式常量 p3 An 积分常量表达式是整型或无范围枚举类型的表达式 隐式转换为纯右值 其中转换后的表达式是核心常量表达式 5 20 expr const p5 A 常量表达式是一个泛左值核心常量表达式 其值引用作为常
  • 为什么 Rust 不允许可变别名?

    Rust 不允许这种代码 因为它不安全 fn main let mut i 42 let ref to i 1 unsafe mut mut i as mut i32 let ref to i 2 unsafe mut mut i as m
  • 从给定 X 值的密度函数检索 Y 值

    给定一个简单的密度直方图和曲线 如下所示 如何检索给定 X 值的 Y 值 例如 y 值位于mean dat dat lt c 5 7 4 6 4 3 55 6 7 5 4 3 33 44 5 2 33 22 hist dat freq F
  • currentUser 返回 null

    我有一个使用 firebase auth 进行身份验证的反应应用程序 当一个人登录后 它会将他们重定向到书籍页面 这是提交登录处理程序 import auth firebase from firebase async function go
  • 如何使用 SMOTE 将合成数据集保存在 CSV 文件中

    我使用信用卡数据通过 SMOTE 进行过采样 我正在使用 geeksforgeeks org 中编写的代码 Link 运行以下代码后 它会显示类似以下内容 print Before OverSampling counts of label
  • 字符串周日期到冷融合日期

    我需要格式化一个字符串日期 如下所示 2021 W46 变成我可以在冷融合中使用的东西parseDateTime or dateFormat功能 W46在本例中是第 46 周 我尝试的是直接将该字符串放入parseDateTime and
  • Java并发——发布不可变对象(Java并发实践)

    在 Java Concurrency In Practice 一书中 作者指出 不可变对象可以通过任何机制发布 任何线程都可以安全地使用不可变对象 无需额外的同步 即使不使用同步来发布它们也是如此 这是否意味着以下习惯用法可以安全地发布不可
  • 在 Java 中使用 SWIG 处理返回指向结构数组的指针的 C 函数

    我试图找出需要进行哪些 SWIG 接口文件更改才能处理 getFoo 返回指向自定义结构数组 sender id t 的指针 没有任何特殊的 SWIG 接口代码 我只得到 Java 端的指针 如何将该指针转换为可以循环或迭代的对象 在 Ja
  • 从 NSExpression 捕获 NSInvalidArgumentException

    在我的代码中 我将字符串评估为数学表达式 例如 NSString formula 9 7 NSExpression expr NSExpression expressionWithFormat formula NSLog expr expr
  • c# 为什么当路径为“C:”时,directoryInfo 将我带到应用程序文件夹?

    为什么当我给出路径 c 时它直接将我更改为应用程序文件夹 static void Main string args DirectoryInfo dir new DirectoryInfo c Console WriteLine dir Fu
  • 如何针对 64 位优化 .NET 网站和应用程序?

    如何在 NET 2 0 Web 应用程序和控制台 表单应用程序中充分利用 64 位架构 我认为在 32 位与 64 位架构方面 您的托管 NET 代码中没有太多可以优化的地方 这是因为大多数差异和优化很可能已经由底层虚拟机实现 正如中提到的
  • 一段时间后显示 UIAlertView

    我试图在一段时间后显示 UIAlertView 比如在应用程序中执行某些操作后 5 分钟 如果应用程序已关闭或在后台运行 我已经通知用户 但我想在应用程序运行时显示 UIAlertView 我尝试按如下方式调度异步 但警报永远弹出 NSTh