注册 登录
主题 : 请问一下swift全局变量有关问题
级别: 新手上路
UID: 677121
精华: 0
发帖: 2
可可豆: 11 CB
威望: 11 点
在线时间: 3(时)
注册时间: 2019-01-26
最后登录: 2019-01-28
0 楼:  发表于: 2019-01-26 13:27    发自: Web Page

请问一下swift全局变量有关问题   

请问下大家
? ? func makeTimer() {
? ? ? ? //穿件计时器
? ? ? ? timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { _ in
? ? ? ? ? ? print(self.leftTime)
? ? ? ? ? ? if self.leftTime < 1 {
? ? ? ? ? ? ? ? self.timer.fireDate = Date.distantFuture// 计时器暂停
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? self.leftTime -= 1
? ? ? ? ? ? }
? ? ? ? })
? ? }
这是计时器函数,leftTime是全局变量。
下面的是cell中引用计时器的代码


? ? ? ? ? ? ? ? ? ? makeTimer()
? ? ? ? ? ? ? ? ? ? print("left5555555:\(leftTime)")
? ? ? ? ? ? ? ? ? ? cell.lefttime.text = "(\(leftTime))秒后放弃订单"


运行后计时器可以运行的,但是cell 中的leftTime就一直不变化。是怎么回事呢

级别: 新手上路
状态: 连续签到 - [17天]
UID: 413574
精华: 0
发帖: 13
可可豆: 94 CB
威望: 60 点
在线时间: 1087(时)
注册时间: 2014-12-11
最后登录: 2019-02-15
1 楼:  发表于: 2019-01-31 16:42    发自: Web Page
你应该把cell中的label变化(cell.lefttime.text = "(\(leftTime))秒后放弃订单")
放在定时器中的判断计时器是否需要暂停处
就是应该和(self.leftTime -= 1)放在一起

CocoaChina社区转载内容已尽可能注明出处,如未能核实来源或转发内容图片有权利瑕疵的,请及时联系社区进行修改或删除【联系方式QQ : 3442093904 邮箱:support@cocoachina.com】文章内容为作者独立观点,不代表CocoaChina社区立场。版权归原作者所有,如申请授权请联系作者,因文章侵权CocoaChina社区不承担任何法律及连带责任。

描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部