搜索

首页  >  问答  >  正文

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

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

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


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

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

会报错,这是为什么?

巴扎黑巴扎黑2768 天前779

全部回复(1)我来回复

  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-31 10:34:00

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

    以下是题主之后的疑问:

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

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

    回复
    0
  • 取消回复