iOS: 如何使用 swift 来添加一条死循环,有时间间隔的线程?

简单实现到这种程度即可:
定义一个bool 类型变量,每次循环时会判断这个变量,为 true 即会打印 print(666),并使线程休眠1s,然后重复这个循环.

尝试过 GCD的.concurrentPerform,但是只能执行一定数量,并不是真死循环,而且不知道怎么设置时间间隔.
网上还有 NStimer 方法,但是不知道少导入了哪个框架,并没有 NSTimer 这个类(Swift项目).


尝试了 Cadisplaylink,问题已经解决了,但是在作为全局量初始化的时候,

let displaylink = CADisplayLink(target: self,
   selector: #selector(step))

会报错,这是为什么?

阅读 3.4k
1 个回答

在评论中确认了题主是 target: self 这里报错了。

以下是题主之后的疑问:

哦对,当时controller 还没初始化了,谢谢你.还有能再问一下这个 target:变量有什么用吗?只知道一般的 target 都填 self,但不知道填 self 是为了啥,是设置代理的吗?

简单理解就是后面参数 selector 的所属。
一般时候,selector 都是指向某个类内的某个方法,当 let displaylink = CADisplayLink(target: self, selector: #selector(step)) 是写在相同类中时,自然 target 就是 self 了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题