iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 27
0
Software Development

iOS 從 Objective-c 進化為 Swift 的 30天之旅系列 第 27

[Day 27] Swift Timer 簡易使用介紹

前言

Timer 在OC應該是NSTimer
在Swift就是簡化成Timer
主要功用在計時使用
固定時間呼叫某func 幾個循環
或是延遲幾妙後開始計時

Timer 與 NSTimer

OC NSTimer 寫法

寫一個每五秒 reload tableview
並且重複

宣告部分

//每5秒循環一次 呼叫reloadTableView 重複呼叫
NSTimer *reloadTimer = [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(reloadTableView) userInfo:nil repeats:YES];

呼叫func部分

-(void)reloadTableView:(NSTimer *)theTimer{
    [tableview reloadData];
}

停止

要停止部分使用invalidate
並且釋放reloadTimer = nil

[reloadTimer invalidate];
reloadTimer = nil;

Swift Timer 寫法

宣告部分

//每5秒循環一次 呼叫reloadTableView 重複呼叫
var timer : Timer?
reloadTimer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(reloadTableView(_:)), userInfo: nil, repeats: true)

呼叫func部分

@objc func timeRepeat(_ time:Timer) -> Void {
    tableview.reloadData()
}

停止

timer?.invalidate()
timer = nil

大致上語法差不多
只有宣告好像還有很多宣告法
但我的func它自動幫我轉objc也太奇怪了
下次再來研究為什麼會這樣


上一篇
[Day 26] Swift SQLite.swift GROUP BY 與 SUM 語法
下一篇
[Day 28] Xcode7.2後 Build Settings 默認沒有 Other Linker Flags解決方案
系列文
iOS 從 Objective-c 進化為 Swift 的 30天之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言