使用线程通过 Swift 更新 UI

2023-12-24

我正在使用 Swift 使用 Xcode 6 开发一个软件。当我按下按钮时,我的代码会从网络获取一些信息并将它们写入我的 NSWindow 上。

所以想象一下这样的事情:

@IBAction func buttonPressed(sender: AnyObject)
{
    for page in listOfPages                     //Number of pages is 40.
    {
        var label: NSTextField = NSTextField();

        label.stringValue = getInformetionsFromPage(page)

        /*
             some code to add label in the window here 
        */ 
    }
}

问题是,一旦我单击按钮,我需要一段时间才能看到结果列表,主要时间应用程序被冻结。那是因为我没有使用任何线程来处理这个问题。我如何实现线程来查看循环的每一步更新的每个标签?我是线程和 Swift 新手,所以我需要一些帮助!

感谢你们。


斯威夫特3.0+版本

DispatchQueue.main.async() {
    // your UI update code
}

发布此内容是因为 XCode 无法建议 swift 2.0 版本中的正确语法

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

使用线程通过 Swift 更新 UI 的相关文章

  • 如何通过 Google Sheets API 进行基本写作?

    在使用 Swift 学习 Google Sheets API 的过程中 我想将单个范围写入电子表格 调查iOS 快速入门指南 https developers google com sheets quickstart ios ver swi
  • 添加 NSCoding 作为扩展

    我想扩展一个框架类 我不想直接编辑源代码 并使其符合NSCoding 基本上 这是我所处情况的简化 Can t be edited class Car NSObject var color String Can be edited exte
  • Netty UDP 服务器中的线程未同时执行

    我正在分析的代码使用 Netty NioDatagramChannelFactory 创建 UDP 服务器 它创建一个线程池 ExecutorService threadPool Executors newCachedThreadPool
  • 如何在松开按钮后立即看到新的视频层?

    我有一个应用程序 用户可以按住按钮来拍摄视频 然而 当他们这样做时 带有视频播放的新图层不会立即出现 相反 有一个非常短的延迟 在用户松开按钮后 您可以看到相机仍然显示相机所看到的内容 延迟结束后 视频立即显示并开始播放 但是 我怎样才能使
  • 错误 ITMS-90207 Apple Store 提交

    当我在模拟器或设备上运行我的应用程序时 用于调试和发布构建配置 它可以完美运行 但是当我尝试将我的应用程序提交到 Apple Store 时 出现以下错误 错误 ITMS 90207 捆绑包无效 APPNAME app 处的捆绑包确实 不包
  • Xcode - 调试视图层次结构

    我正在尝试调试应用程序的视图层次结构 Xcode 窗口的左侧窗格中出现了一个紫色的小方块 请参见屏幕截图 知道这个问题可能是什么吗 好吧 我找到了这个问题的根源 这是一个约束问题
  • Android Studio 无法运行 Xcode 模拟器

    我正在尝试使用 Xcode iPhone 模拟器模拟我的 Flutter 应用程序 但收到此错误 在升级 Android Studio 和 Xcode 之前 它运行良好 Launching lib main dart on iPhone X
  • Xcode 注释自动完成(appledoc 风格)

    我发现记录界面特别痛苦 因为我需要自己输入所有内容 所以我想我一定不是唯一一个这样的人 并开始寻找一种方法来减轻我的痛苦 但没有找到多少 我的问题是 有没有快捷方式或方法可以让 Xcode 自动完成我的评论 例如 我非常希望输入 tab 它
  • 无法访问类型的封闭实例。 [复制]

    这个问题在这里已经有答案了 整个代码是 public class ThreadLocalTest ThreadLocal
  • 如何解决 xcode 一直编译所有内容的问题?

    我已经开始使用 XCode 它似乎可以工作 嗯 大部分 烦人的是它每次都会编译所有源文件 甚至是那些没有更改的文件 我正在掌握 openframeworks 每次都浪费时间编译 openframeworks 源文件 尽管它们没有改变 以下是
  • 在完成块中保留循环

    在我的课堂上 我创建了这个方法 void refreshDatasourceWithSuccess CreateDataSourceSuccessBlock successBlock failure CreateDataSourceFail
  • 将 C 转换为 Swift:向 UITextField 添加放大镜图标

    如何在左侧添加一个放大镜图标UITextField 我找到了类似问题的答案here https stackoverflow com questions 11811705 where can i get the magnifying glas
  • iOS 自定义滑块删除两端的最小和最大空间

    我正在尝试使用自定义滑块 class MySlider UISlider override func trackRect forBounds bounds CGRect gt CGRect let customBounds CGRect o
  • 使用 UItableviewCell 实现 Google 地图

    我正在尝试在 UItableviewCell 组件内实现谷歌地图 我这样做的方法是在原型单元中定义 GMSMapView 然后使用 dequeueReusableCell 方法配置地图单元 但是 我尝试应用的任何更改都会失败 例如添加标记
  • Java 唤醒休眠线程

    我阅读了其他帖子 但没有找到我正在寻找的确切答案 所以我希望有人能给出一些澄清 我有一个将运行一段时间的程序 我有一些在后台运行的线程来执行各种任务 为了简单起见 让我们考虑 3 个线程 ThreadA每 10 秒执行一次任务 其中Thre
  • 为什么在尝试编译此代码时会收到错误“错误:未知类型名称'虚拟'”?

    Code struct IRenderingEngine virtual void Initialize int width int height 0 virtual void Render const 0 virtual void Upd
  • Java:使用 Java.util.concurrent 线程访问读取线程串行端口

    我正在尝试编写一个 Java 串行设备驱动程序并想使用 对我来说是新的 java util concurrent包裹 我有一种发送数据包然后等待 ACK 的方法 我打算有炭 接收在不同的线程中运行 如果接收线程收到 ACK 它应该使用发送数
  • Swift 运行时库与 Swift 标准库

    In this 关于如何使用 CocoaPods 的教程 https www raywenderlich com 97014 use cocoapods with swift我无法理解以下段落 与 Objective C 不同 标准 Swi
  • 闭包存储属性初始化有什么好处?

    初始化类的属性时 此代码有什么区别以及优点 缺点 1 let menuBar MenuBar let mb MenuBar return mb and 2 let menuBar MenuBar 两个代码片段都声明并初始化存储的属性 htt
  • PyObjC + Python 3.0 问题

    默认情况下 Cocoa Python 应用程序使用默认的 Python 运行时版本 2 5 如何配置我的 Xcode 项目以便它使用较新的 Python 3 0 运行时 我尝试用新版本替换项目中包含的Python framework 但它不

随机推荐

  • log4net / EventLogAppender 忽略我的 LogName

    此配置应该使我的日志条目最终出现在自定义日志中 对吧 但它最终会出现在应用程序日志中 我的应用程序以管理员身份运行 运行我的应用程序后 我可以确认日志和事件源是通过使用创建的EventLog Exists MyLog and EventLo
  • 谷歌浏览器扩展中的文件“compulated_hashes.json”的用途是什么?

    在一些谷歌浏览器扩展中 有一个computed hashes json文件 我没有找到任何有关该文件的文档 因此 如果我能得到一些解释 那就太好了 以下是该文件的摘录 file hashes block hashes THf ne1nArt
  • 通常禁用矩阵降维?

    众所周知 如果列维或行维为 1 R 会尝试将矩阵简化为向量 可以通过使用drop F命令 然而 我目前正在编写一个大型 R 包 并且需要在代码中数百次禁用维度下降 因此我必须手动找到这些位置并添加drop F数百次 因此 我想知道是否有任何
  • Symfony2 表单未选中的复选框未考虑在内,为什么?

    当我发送带有未经检查的复选框 如果相关实体属性等于true 那么它不会改变为false 反之亦然 当发送带有选中复选框的表单时将属性设置为 true 效果很好 并且保存的所有表单其他字段也可以正常工作 以下是我构建表单并声明相关属性的方法
  • NSAttributedString 颜色测试

    比较或测试 NSAttributed 字符串的特定颜色属性的正确方法是什么 举个例子 我想知道文本选择是否有红色文本 我尝试了几种方法 如下所示 但没有一种方法能够产生匹配结果 我看到屏幕上的文本变成红色 并且记录属性返回 UIDevice
  • 是否有 ADB 命令可以切换允许模拟位置?

    我搜索了一些主题但没有找到答案 我不需要指定纬度 经度 而是打开允许模拟位置的开关 安装应用程序后 在 Marshmallow 及以上版本 中 只需运行 adb shell appops set com example my package
  • 集合视图拖放延迟

    有没有办法调整在集合视图单元格上开始拖动所需的时间 如同UILongPressGestureRecognizer minimumPressDuration财产 我知道我们可以迭代附加到视图的所有手势识别器 并可能找到我们需要的手势识别器 但
  • 多部分/表单数据上传 - Nodejs - Expressjs

    由于express multipart已从Express 4 x库中删除 那么在expressjs中处理文件上传的最佳方法是什么 刚刚回答了一个类似的问题 https stackoverflow com q 23063317 971592关
  • 某些文件扩展名的 SVN Commit 问题

    我在从 Tortoise SVN 上传文件到 SVN 存储库时遇到问题 我可以上传所有文件 除了某些总是失败的特定文件 文件列表 Rhino Mocks dll 系统 Data SQLite dll 微软 Ajax debug js 在 S
  • VT100终端仿真器中的键盘传输模式

    我正在 javascript 和 vt100 规范中实现 vt100 终端模拟器 来自man terminfo and infocmp 告诉我smkx E 1h E 是进入键盘传输模式的代码 rmkx E 1l E gt 是离开 键盘传输
  • 我们能否为 EC2 实例设置易于记忆的主机名?

    我正在 EC2 上运行几个标准 Fedora 实例 我觉得亚马逊分配的实例的公共主机名太奇怪而且很难记住 我想将它们更改为较短的内容 例如红色 蓝色 绿色 等 这样做有什么缺点吗 以及如何设置它以使其在重新启动后仍然存在 Thanks 在开
  • 如何以编程方式获取 iPhone 屏幕尺寸? [复制]

    这个问题在这里已经有答案了 可能的重复 如何使用代码获取屏幕尺寸 https stackoverflow com questions 3635483 how to get screen size using code NSLog Top L
  • 如何手动验证 JWT Asp.Net Core?

    那里有数以百万计的指南 但似乎没有一个能满足我的需要 我正在创建一个身份验证服务器 它只需要颁发并验证 重新颁发令牌 所以我无法创建一个中间件类来 验证 cookie 或标头 我只是收到字符串的 POST 我需要以这种方式验证令牌 而不是A
  • 当 fd 关闭时,我会收到 epoll 的通知吗?

    我目前正在构建一些使用的东西epoll 它工作得很好 但是当文件描述符被删除时最好有一个通知epoll当底层的fd关闭了 有没有办法获得通知epoll一旦fd关闭了 不 这是一个Zig https ziglang org 程序来演示 con
  • Java 9 的 LogManager.getLogger() / Logger.getHandlers() 上缺少斜杠似乎会导致异常

    当我尝试创建日志文件 C Users cardal ApplicationLog html 时 我发现 Windows 上运行 Java 9 的 Applet 出现问题 该代码在 Java 8 上运行良好 代码执行LogManager re
  • checkSelfPermission() 似乎不适用于 WRITE_EXTERNAL_STORAGE

    我有使用的应用程序
  • 如何在 Ruby on Rails 中的 ActiveRecord 查询中加入间接关联?

    在我的 Ruby on Rails 应用程序中 我有一个模型Instance属于另一个模型Zone The Zone模型本身属于Country模型 我正在获取一组Instance对象如下 scope thisweek gt joins zo
  • Facebook 登录按钮无法在 45 秒内调整大小

    我正在尝试实现异步加载 Facebook 登录按钮 但该按钮在 45 秒后消失 仅在 Google Chrome 中 并且此错误消息记录在错误控制台中 FB login button failed to re size in 45s 我该如
  • 基于一列生成单词对

    我想根据第三列 标识符 创建单词对 我的文件与此示例类似 A ID 1 B ID 2 C ID 1 D ID 1 E ID 2 F ID 3 我想要的结果是 A C ID 1 A D ID 1 B E ID 2 C D ID 1 请注意 我
  • 使用线程通过 Swift 更新 UI

    我正在使用 Swift 使用 Xcode 6 开发一个软件 当我按下按钮时 我的代码会从网络获取一些信息并将它们写入我的 NSWindow 上 所以想象一下这样的事情 IBAction func buttonPressed sender A