快速for循环与睡眠

2024-03-13

我有一个 Swift 4 ios 应用程序,按下按钮时会显示随机消息和照片。这工作正常,但我想创建一个无限循环来在按下按钮时显示随机消息/照片。我尝试了多种方法来实现这一目标,但没有一个有效。在主线程完成之前,标签和图像视图似乎不会更新。下面是我目前尝试的方法,这甚至不是无限循环,但仍然存在相同的问题。打印语句显示在调试窗口中,但标签和图像视图从未更新。

@IBAction func loveButtonPressed(_ sender: UIButton) {

    nextNote()

}


func nextNote() {

    for number in 1...1000 {

        print("number is \(number)")
        randomPhoto = Int(arc4random_uniform(18))

        if randomPhoto == lastRandomPhoto {
            randomPhoto = Int(arc4random_uniform(18))
        }

        photoDisplay.image = UIImage(named: photoArray[randomPhoto])

        lastRandomPhoto = randomPhoto

        randomNum = Int(arc4random_uniform(14))

        if randomNum == lastRandomNum {
            randomNum = Int(arc4random_uniform(14))
        }

        loveNote.text = msgArray[randomNum]
        lastRandomNum = randomNum
        print("end of loop before sleep")
        sleep(6)
        print("end of sleep")
    }
}

你可以使用Timer反而...

var timer: Timer!

func nextNote() {
    self.timer = Timer.scheduledTimer(timeInterval: 6.0, target: self, selector: #selector(self.setPhoto), userInfo: nil, repeats: true)
}

@objc func setPhoto() {

    randomPhoto = Int(arc4random_uniform(18))

    if randomPhoto == lastRandomPhoto {
        randomPhoto = Int(arc4random_uniform(18))
    }

    photoDisplay.image = UIImage(named: photoArray[randomPhoto])

    lastRandomPhoto = randomPhoto

    randomNum = Int(arc4random_uniform(14))

    if randomNum == lastRandomNum {
        randomNum = Int(arc4random_uniform(14))
    }

    loveNote.text = msgArray[randomNum]
    lastRandomNum = randomNum
}

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

快速for循环与睡眠 的相关文章

  • 在 UICollectionView 下面插入子视图

    当我在 UICollectionView 下方添加子视图时 有时子视图会显示在 UICollectionView 单元格上方 这是子视图插入代码 self collectionView insertSubview self garmentV
  • 如何使用 Swift Package Manager 将 SwiftLint 与 iOS 应用程序集成?

    我正在使用 Xcode 11 beta 5 创建一个新的 iOS 应用程序 并且我想使用 Swift Package Manager 而不是 CocoaPods 来管理依赖项 使用 SwiftLint 和 CocoaPods 时的常见模式是
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我
  • Firebase Analytics DebugView 收集的事件数据不完整

    我正在将事件发送到 Firebase Analytics 并发现 DebugView 中缺少部分事件参数 下面是发送到 Firebase 的两个相同事件 我检查了 Xcode 调试控制台中是否存在所有参数 缺失的参数似乎是随机的 有时根本没
  • 解包可选值时意外发现 nil - 使用 ALAMOFIRE

    我正在尝试使用 Alamofire 获取 JSON 格式的数据 当我使用一个 URL 时 它工作正常 当我使用另一个 URL 时 我在解包可选值时收到错误 我似乎无法追踪错误来自哪里 我已采取将代码放入 ViewDidLoad 来跟踪错误
  • 启动使用 Simperium 的应用程序时 objectFromJSONString 崩溃

    我得到了一个JSON当我尝试启动使用 Simperium 框架的应用程序时崩溃 NSCFString objectFromJSONString unrecognized selector sent to instance 0x6c561a0
  • 了解 React Native 中的默认字体大小

    在过去的几个月里 我一直在开发一个 React Native 应用程序 但有些事情总是让我困惑 而我现在正试图弄清楚它的真相 我正在尝试标准化应用程序中的字体大小 正文 标题等 并且正在努力了解 React Native 究竟从哪里获取默认
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta
  • 如何从 Xib 文件加载自定义 UITableViewCell?

    问题很简单 如何加载自定义UITableViewCell来自 Xib 文件 这样做可以让您使用 Interface Builder 来设计您的单元 由于内存管理问题 答案显然并不简单 这个线程 https stackoverflow com
  • 在后台每 X 分钟执行一次函数不起作用

    我使用此代码每 X 分钟执行一次函数 void executeEveryOneMinute self myFunction dispatch after dispatch time DISPATCH TIME NOW int64 t 60
  • 如何使用存储在 Cocoa Touch 框架中的 Localized.strings?

    我想为 CocoaTouch 框架添加多语言支持 问题 可本地化的字符串我创建的文件仅被使用NSLocalizedString当它是主应用程序及其目标的一部分时 我想将其存储在框架内以将事物分开 我怎样才能使用可本地化的字符串当放置在 Co
  • Xcode 11 无法识别静态库的架构:MacCatalyst(又名 UIKitForMac)

    在对 2019 年 WWDC 公告感到兴奋之后 我尝试使用 Xcode 11 0 beta 针对 MacOS 编译现有的 iOS 应用程序 不幸的是 事情并没有按预期进行 Xcode 说我的静态库是为 架构构建的 为 Mac 版 UIKit
  • iOS JPEG 图像旋转 90 度

    我正在使用选择器视图从相册中选择图像 我使用上面的代码 void imagePickerController UIImagePickerController picker didFinishPickingMediaWithInfo NSDi
  • Swift - 将图像插入 PDF 不再适用于 iOS 13

    目前正在开发在我的贷款计算器应用程序上导出 PDF 的功能 我有一个预览屏幕 可以在您保存 PDF 之前显示它 预览屏幕由带有 html 的 webView 组成 其中包含占位符 我能够成功地将图像插入到正确的占位符上 并将其显示在 PDF
  • TableView 中图像的大小不正确

    我正在使用来自 URL 的图像创建一个表视图 但图像不会调整到所有视图的大小 直到我将其按入行中 知道为什么会发生这种情况吗 这是一个自定义的表格视图 我的代码是 UITableViewCell tableView UITableView
  • iOS:我如何知道某个属性是否符合 KVO 标准?

    In the 键值观察编程指南 https developer apple com library archive documentation Cocoa Conceptual KeyValueObserving KeyValueObser
  • 使用 NSFileHandle 覆盖数据

    使用 NSFileHandle 使用 truncateFileAtOffset 从文件末尾删除 n 个字符非常容易 void removeCharacters int numberOfCharacters fromEndOfFile NSF
  • 如何像谷歌日历一样将单元格的内容滚动到表格视图中的另一个单元格中?

    我希望用户界面像谷歌日历那样进入桌面视图 它在不同的行中显示相同的日期事件 但是当您向上或向下滚动时 左侧的日期也会向上向下滚动 Can you please help me how to achieve this Please take
  • ArraySlice 中的 Swift [重复]

    这个问题在这里已经有答案了 在数组上使用 prefix 方法后 我得到了所谓的 arraySlice 我怎样才能将其转换为数组 我试图从 FacebookGraphApi 获取 Ints 然后请求前 3 个 前缀 3 并尝试将它们添加到新数
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo

随机推荐

  • 通过构造函数传递和存储 const 引用?

    这可能是一个简单的问题 但我一直坚持下去 我试图通过它的构造函数将一个对象从 ObjectA 传递到 ObjectB 它是 ObjectA 的成员 但是 我不想传递值 而是只想传递 const 引用并无限期地存储该引用 问题是我不知道该怎么
  • 正则表达式导致“分隔符不能是字母数字或反斜杠”[重复]

    这个问题在这里已经有答案了 我有这个代码 function a menu item remove link pattern class
  • 初始化张量

    tf coo tf SparseTensor indices np array 0 0 0 1 1 2 3 9 1 4 9 9 9 9 9 9 T values 1 2 3 5 1 1 1 1 shape 10 10 我收到错误消息 Inv
  • vuejs 条件包装器

    在我的 nativescript vue 应用程序中 我有一个名为 profileForm 的单个文件组件 我想以两种方式使用该组件 如果用户登录 我希望将该组件作为布局组件的插槽来编辑配置文件 否则我想要的是作为注册表 我不想创建额外的组
  • 更新多对多关联原则2

    有什么解决方案可以自动执行此操作吗 我的两个实体 class User ManyToMany targetEntity Product inversedBy users JoinTable name user product joinCol
  • 根据条件获取Python Pandas中数据帧的第一行,而不迭代整个数据帧[重复]

    这个问题在这里已经有答案了 假设我想获取数据帧的第一行 其中某一列具有负值 import pandas as pd df pd DataFrame columns c data 2 4 2 3 1 0 index df loc df c l
  • Google 未显示 React-Helmet 标题和描述

    我使用react helmet 为我的React 应用程序的每个页面提供唯一的标题和描述 当我使用开发工具检查页面时 标题在浏览器选项卡中正确呈现 标题和描述也正确呈现 然而 谷歌并没有在搜索结果中显示标题或描述 我究竟做错了什么 我研究过
  • 根据 selectInput 更改绘图图表 y 变量

    我正在创建一个简单的折线图 可以在 Shiny 中正确呈现 我现在添加了一个 selectInput 其中包含 2 个不同度量的名称 按照它们在我的数据集中出现的方式编写 我希望我的 y 变量能够相应地改变 p lt plot ly dat
  • 在一个查询中插入两个表

    如何同时将值插入到两个表中 如果不成功 两个表都应该回滚 我正在使用 SQL Server 查询过程会抛出 C 代码 您可以将这两个查询作为一个语句运行 insert into table1 values insert into table
  • 在Android项目中使用开源库

    我是 Android 编程的初学者 我正在使用 android studio 现在我想知道从 gitHub 安装开源库的最佳方法是什么 我的问题是从组织原则的角度来看 我应该为每个库创建一个新包并将所有库源代码按原样放入该包中吗 该包应该位
  • 导入类型时 Sveltekit Typescript 解析错误

    我在一个全新的 Sveltekit 项目中有这个非常简单的组件
  • Spring data mongodb 使用 MongoTemplate 从文档中删除属性

    我有一个如下所示的文档 id ObjectId 5864ddd8e38112fd70b89893 class com apic models UserReg name xxx email email protected cdn cgi l
  • REQUEST_URI 与显式路径和文件名不匹配

    真的很困惑 因为形式和语法看起来都很好 REQUEST URI 的 RewriteCond 与显式路径和文件名不匹配 隔离时 REQUEST FILENAME 的 RewriteCond 匹配得很好 我已经使用 phpinfo 验证了 RE
  • 尽管同时实现了 hashCode() 和 equals(),HashSet 仍添加了重复条目

    我有以下课程 class Point double x y constructor and other functions here public boolean equals Point p if p null return false
  • Node.js 存档器需要通过 glob 排除文件类型的语法

    使用 archiver js 适用于 Node js 我需要从递归 多子目录 存档中排除图像 这是我的代码 const zip archiver zip zlib level 9 const output await fs createWr
  • Python 脚本 - 连接到 SSH 并运行命令

    我已经知道有 Python 的 ssh 模块 但这不是我正在寻找的 我想要的是一个 python 脚本来执行以下操作 gt 连接到 用户输入 SSH 主机 gt 使用凭据 由用户提供 连接 gt 在 SSH 主机上运行命令 telnet 到
  • 使用 ST25 android SDK 进行 NFC 标签密码保护

    我正在与ST25 标签 更具体地说是 type5 标签 ST25DV64K 适用于 Android 的 ST25 SDK 有一些有趣的示例和教程 我仍然在努力使用文档末尾提供的代码示例here https www st com resour
  • MySQL - 如何使用 LIKE 搜索精确的单词匹配?

    我使用此查询来选择数据 mysql query SELECT FROM products WHERE product name LIKE search 唯一的问题是 它有时会选择比我想要的更多的东西 例如 我想选择产品 BLA 但我的查询也
  • Internet Explorer 11 与 Asp.Net 4.0 的会话问题

    我遇到一个奇怪的问题 我在 asp net 4 0 中开发了一个网站 它在所有浏览器上都能正常工作 因为我也在处理会话 因此用户必须登录才能使用该网站 在 Internet Explorer 11 上 当您访问网站 url 时 它会在 ur
  • 快速for循环与睡眠

    我有一个 Swift 4 ios 应用程序 按下按钮时会显示随机消息和照片 这工作正常 但我想创建一个无限循环来在按下按钮时显示随机消息 照片 我尝试了多种方法来实现这一目标 但没有一个有效 在主线程完成之前 标签和图像视图似乎不会更新 下