DispatchQueue :无法在非主线程上使用 asCopy = NO 进行调用

2023-12-28

我正在介绍的是UIAlertController在主线程上为:

class HelperMethodClass: NSObject {

    class func showAlertMessage(message:String, viewController: UIViewController) {
        let alertMessage = UIAlertController(title: "", message: message, preferredStyle: .alert)

        let cancelAction = UIAlertAction(title: "Ok", style: .cancel)

        alertMessage.addAction(cancelAction)

        DispatchQueue.main.async {
            viewController.present(alertMessage, animated: true, completion: nil)
        }
    }
}

我正在从任何地方调用该方法UIViewController as:

HelperMethodClass.showAlertMessage(message: "Any Message", viewController: self)

我得到了正确的输出。

但在控制台中我收到以下消息:

[断言] 无法在非主线程上使用 asCopy = NO 进行调用。

我在这里做错了什么或者我可以忽略此消息吗?

Edit

感谢@NicolasMiari:

添加以下代码不会显示任何消息:

DispatchQueue.main.async {
    HelperMethodClass.showAlertMessage(message: "Any Message", viewController: self)
}

之前在控制台中显示该消息的原因可能是什么?


您应该从以下位置调用所有代码showAlertMessage在主队列上:

class func showAlertMessage(message:String, viewController: UIViewController) {
    DispatchQueue.main.async {
        let alertMessage = UIAlertController(title: "", message: message, preferredStyle: .alert)

        let cancelAction = UIAlertAction(title: "Ok", style: .cancel)

        alertMessage.addAction(cancelAction)

        viewController.present(alertMessage, animated: true, completion: nil)
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DispatchQueue :无法在非主线程上使用 asCopy = NO 进行调用 的相关文章

  • 从 URL 解析 JSON 最终出现错误 - Swift 5

    我正在尝试用 swift 编写一个函数 从 URL JSON 获取数据 并将其分配给 swift 中的变量 这是函数 func getBikeData guard let url URL string https api citybik e
  • UITextfield 键盘只有字母,没有数字,没有大写字母,没有空格键?

    我希望 UITextfield 的键盘只有 a z 没有数字 没有特殊字符 并且没有大写字母 基本上我想要一个只有字母的键盘 我已经能够禁用该空间了 有人知道如何禁用数字 特殊字符和大写字母吗 解决这些问题中的任何一个都很棒 对所有角色执行
  • 重新定位时 Mapbox 默认的 compassView 会给出奇怪的结果

    我遇到一种情况 必须将地图框罗盘视图重新定位到不同的位置 当我以其他点作为其 compassView 轴旋转地图时 compassView 现在正在旋转 并给了我一个奇怪的结果 附截图 黑色mapBox默认罗盘图标是旋转的 参考截图 这是
  • Alamofire 仅在 GET 请求上出现请求错误

    我正在努力将我的项目从 AFNetworking 转移到 Alamofire 真的很喜欢这个项目 POST 请求工作得很好 但是 我在尝试发出 GET 请求时收到此错误 这是一些示例代码 class func listCloudCrednt
  • 如何更改某些功能以兼容 iOS 10 或更低版本的 Snapchat 中的某些功能,例如相机视图控制器

    我正在制作一个视图控制器来制作像 snapchat 相机一样的相机视图控制器 我下面的代码在 iOS 11 或更高版本上完美运行 老实说 我并没有真正掌握我的代码 因为我只是按照这个像相机视图控制器这样的 snapchat 的教程进行操作
  • NSNotification 与dispatch_get_main_queue

    和 关联这个问题 https stackoverflow com questions 7905192 iphone grand central dispatch main thread我想知道关于何时使用 NSNotification 在主
  • 可以转换为 Swift 5

    我在 Xcode 10 2 中收到此警告 可以转换为 Swift 5 当我单击此错误时 它会打开此窗口 当我们点击Next会发生什么 swift 的当前版本是 swift5 仅在 Xcode 10 2 中受支持 而您在 Xcode 10 2
  • 快速从 appDelegate 中 popToRootViewController

    我试图从应用程序委托弹出到导航堆栈的根视图控制器 并且在将 obj c 中的内容转换为 swift 时遇到一些问题 obj c 中的工作原理 UINavigationController navigationController UINav
  • iOS swift 应用程序启动时出现黑屏

    我有个问题 当我启动我的应用程序时 会看到黑屏几秒钟 然后出现启动屏幕 我的启动画面不是默认的 我使用了视图控制器 因为我的启动画面有一个动画 我搜索了一个解决方案 我得到了这个 在我的闪屏加载 iPhone 之前出现黑屏 https st
  • 如何在 Swift 4 中以编程方式将 IBAction 添加到 uibutton?

    如何以编程方式将 IBAction 添加到 uibutton button addTarget self action Selector buttonAction for touchUpInside func buttonAction se
  • Swift 中 UIViewController 子类成员的双重初始化

    我想制作一个自定义容器视图控制器并向其子类添加一些成员UIViewController 当我尝试使用以下代码从应用程序委托初始化它时 self window UIWindow frame UIScreen mainScreen bounds
  • 错误:“Int”无法转换为“@lvalue Float”

    给定以下函数 func greatestCommonDenominator first Int second Int gt Int return second 0 first greatestCommonDenominator second
  • 搜索TableView无法选择行

    在搜索 tableView 时 每次我尝试选择一行时 它都会返回到未搜索的 tableView 我缺少什么 当不过滤表格时 segue 工作得很好 当搜索栏被激活时 选择行的能力就会消失 import UIKit import Founda
  • 如何过滤掉数组的数组

    您好 我有一个包含多个值的数组 我想尝试过滤掉搜索栏的索引 英语术语的一个例子是这样的 给我名称 Name2 的索引 并通过检查每个索引的第一个值中的所有字符串来执行此操作 Code Multiple Errors var received
  • iOS 上每个选项的带有图像的操作表

    有没有办法在 iOS 上将图像添加到操作表中 与苹果在应用程序商店或苹果音乐应用程序上所做的一样 我对苹果文档的基本搜索表明我没有在操作表中子类化或添加子视图 UIActionSheet 并非设计为子类化 也不应向其层次结构添加视图 苹果文
  • Swift 中的弹出视图

    我有一个弹出视图 没有选项卡栏 它弹出到带有选项卡栏的视图控制器 在带有选项卡栏的视图控制器中 我设置了一个单击按钮 以便弹出视图控制器 IBAction func PopUpClicked sender UIButton gt Void
  • 我可以在 NS_SWIFT_NAME 中使用保留关键字吗?

    我正在尝试使 Objective C 委托协议更漂亮以便在 Swift 中使用 但我在弄清楚如何使用时遇到了一些麻烦NS SWIFT NAME 是否可以使用NS SWIFT NAME指定 Swift 名称中与 Objective C 关键字
  • iOS Swift 检测键盘事件

    我能以某种方式检测来自 iOS 键盘的事件吗 我想检测此类事件UIViewController哪个没有UITextField或任何此类物体 我只有四个圆圈UIView我想在按下键盘上的按钮时将它们涂成不同的颜色 您没有任何对象可以从键盘获取
  • 新的 FUITableViewDataSource - 如何使用?雨燕3

    刚刚更新到较新的 FirebaseUI Pod 有些事情发生了变化 但其中最大的变化之一是 FUI 表视图的工作方式 我让它在旧版本上运行良好 但在下面遇到了困难 并且缺乏文档 示例 self dataSource FUITableView
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe

随机推荐

  • React.js - 即使在绑定后“this”也未定义

    我正在尝试捕捉onChange输入和调用事件setState使用新值 但是一旦我输入输入 我就会得到 Uncaught TypeError Cannot read property setState of undefined 尽管我已经打电
  • iPython - 在配置文件中设置魔法命令

    我主要通过笔记本使用 iPython 但也在终端中使用 我刚刚通过运行创建了我的默认配置文件ipython profile create 我似乎无法弄清楚如何让配置文件运行我每次使用的几个神奇命令 我试图在网上和我正在读的书中查找这一点 但
  • 如何使用 Spring Data 获取数据

    嘿 我想创建一个扩展 JpaRepository 的存储库并获取结果而不编写实际查询 在我的示例中 我有 2 个表 Book 和 Author 通过多对多关系映射 假设我想按特定的author id 获取书籍列表 因为在我的书籍实体中 我没
  • 无法在 Vim 中映射

    周末拿到了我的第一台 Mac 我正在努力适应 我的 vimrc 中的这一行在我的 Windows 上有效 但无法通过 iTerm 与 vim 一起工作 inoremap
  • 具有约束关联类型错误“类型不可转换”的 Swift 协议

    我创建了 2 个具有关联类型的协议 类型符合Reader应该能够生成符合以下类型的实例Value 复杂性层来自于符合以下条件的类型Manager应该能够生产混凝土Reader产生特定类型的实例Value 任何一个Value1 or Valu
  • */ 中 d 的 shell 脚本; do在本地运行,但在circleci中不起作用

    我构建了一个脚本 当我尝试在本地运行它时 它工作正常 但是当我在 Circleci 上运行它时 我收到错误 这是脚本 usr bin env bash for d in do cd d for f in do if f sh then if
  • 提示用户打开另一个工作簿

    我正在编写一个子程序 我需要用户打开特定的工作簿 因为我需要将数据从将打开的工作簿复制到运行该子程序的工作簿 由于将打开的文件是月度报告 因此用户很难始终将其以相同的文件名保存在同一位置 因此 如果要求用户打开工作簿 月度报告 那就太好了
  • VS Code 自动导入不使用绝对路径且不缩进

    我将 Typescript 与 SvelteKit 结合使用 当我输入可以自动导入的内容时 如上面的 GIF 所示 自动导入不会使内容保持相同的缩进级别 我还需要绝对路径 src not src VS 代码的设置称为 TypeScript
  • Magento 报告 - 产品 - 产品订购问题:具有相同 ID 的项目 (Mage_Catalog_Model_Product) 已存在

    问题 在 Magento 管理面板中 通过 报告 产品 订购的产品 生成报告时 会发生错误 Item Mage Catalog Model Product with the same id 45 already exist 0 home g
  • 读取文件中的每一行并将每一行放入一个字符串中

    我有一个文本文件 我想读入该文件并将文件中的每一行放入其自己的字符串中 所以该文件将有 4 行 2017 01 2005 59 30 353879833382971575 迈克尔 因此 在代码中 我需要读取文件并拆分每一行并将它们放入一个字
  • 垂直错开 div

    有没有办法像这张图片一样以交错的垂直排列方式显示 div 到目前为止 我已经使用 Flexbox 来接近 但无法交错行 因为我不想预先确定每行有多少个圆圈 我希望用户的浏览器宽度来控制每行有多少个圆圈 因此圆圈 div 上没有类或子项 随着
  • Play框架 路由不区分大小写

    我们目前正在开发 Play 2 5 x 我们希望实现不区分大小写的路由 比如说 GET via v1 organizations http organizationApi 在我们想要实现的URL中 http localhost 9000 a
  • MFC不支持小于0x0501的WINVER

    我有一个 C 项目引用了许多其他项目 库 这是针对多年前创建的应用程序 大约每年更新一次并完成新版本 我多年来一直使用 Visual Studio 6 更新和构建此应用程序的新版本 没有出现任何问题 我正在尝试切换到 Visual Stud
  • Python NLTK 多线程

    我正在编写一个算法 它可以识别给定文本中的句子 将每个句子拆分成单词并在经过一些验证后返回这些单词 我想在多线程的帮助下实现同样的功能 我正在调用处理每个句子的函数threading thread 它会抛出一个错误 AttributeErr
  • 如何在javascript中获取最高的输入字段值

    我想获得这个领域的最高价值 我怎样才能做到这一点
  • “始终开启”设置会阻止idleTimeout 和periodicRestart 吗?

    您可能知道 Microsoft Azure 网站服务下托管的网站默认配置为空闲 20 分钟后超时 idleTimeout 并且应用程序池每 29 小时重新启动一次 periodicRestart 这会导致第一个用户访问网站时速度很慢 我想知
  • 将 Recaptcha 与 EPiServer XForms 结合使用

    有人有在 EPiServer 中使用 Recaptcha 和 XForms 的经验吗 我不知道将 Recaptcha 控件放在哪里以及如何使其工作 ASP NET 的示例代码如下 我应该把它放在哪里 我的猜测是在FormControl Be
  • 多态推理

    我正在学习 Haskell 在互联网上我发现的是paper https people mpi sws org dreyer tor papers wadler pdf来自菲利普 瓦德勒 我读了它 但根本不明白 但它以某种方式与多态函数联系起
  • Internet Explorer CSS 问题

    This page http a accioly 7rtc com p tecnologia htmlIE 9 也可能是旧版本 无法正确呈现 右侧菜单浮动到页面底部 Firefox Chrome 和 Safari 可以正确渲染它 所有浏览器
  • DispatchQueue :无法在非主线程上使用 asCopy = NO 进行调用

    我正在介绍的是UIAlertController在主线程上为 class HelperMethodClass NSObject class func showAlertMessage message String viewControlle