gpt4 book ai didi

ios - 如何让 UIAlertView 暂停线程并等待用户响应,iOS 开发

转载 作者:行者123 更新时间:2023-11-29 10:59:21 25 4
gpt4 key购买 nike

请仔细阅读我的所有问题,看看它是否与 this question 重复

有时我认为 iOS 是最好的操作系统,xCode 也是最优雅的 IDE,但有时我认为它们都是世界上最愚蠢的东西,也许是整个宇宙!

我需要的是 SEEMS 简单的代码逻辑,就像这样

//code BEFORE asking user's decision
//with a lot of variables, this is important

//call UIAlertView to ask user Yes/No question, now the thread should be paused and waiting for user's tap on button

//code AFTER get user tap a button, selected YES/NO
//MANY variables before asking should be continuely used here
answerIsYES = //response from UIAlertView
if (answerIsYES)
{
//code response to YES
}else{
//code response to NO
}

如果您在 UIAlertView 显示之前和之后注意到“许多变量”,您将不会建议我使用 UIAlertViewDelegate。如果那样,我必须在类级别创建所有变量,如果我必须在 FOR 循环中询问用户的决定怎么办?那不能跳转到 SelectedButtonAtIndex 方法再回来!我对吗?我想让我的代码集成,但 UIAlertView 及其委托(delegate)似乎一直将它们分开。

简单来说,我想要的只是一个来自.NET的MessageBox,它可以等待用户点击。那么是否有任何代码可以在 iOS 上实现这一点? iOS 中是否有代码可以简单地“暂停”一个线程,然后由某个事件触发并“恢复”它??

我找了很多都找不到满意的答案,答案涉及“NSCondition”、“NSThread”、“loop”,但没有一个真正有效。但我一开始确实在链接中找到了一个,由@Joseph Gagliardo 回复,我不知道这是否是最好的解决方案。

任何建议将不胜感激。

最佳答案

UIAlertView 与 UIKit 的大多数其他方面一样,是事件驱动的。您不希望在显示警报时阻塞主线程。很多时候,其他事情需要在警报出现时继续进行。但是你的问题有一个很好的解决方案。 block 。

最近添加的 UIKit 类开始使用 block 。这使得编写事件驱动代码更加容易。它不再需要单独的委托(delegate)方法来处理某些事件的完成。

在 Google 上搜索“UIAlertView blocks”。您会发现多个使用 block 的 UIAlertView 的第 3 方版本。使用这种类型的警报 View 将允许您将所有代码保存在一个方法中。这些解决方案不会暂停主线程或任何东西。它只是让完成 block 更容易访问您在显示警报 View 之前设置的所有变量。

关于ios - 如何让 UIAlertView 暂停线程并等待用户响应,iOS 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com