2015-05-08 80 views
1

我想連接到互聯網。如果5秒後我沒有連接(使用可達性)我想中止。這可能嗎 ?互聯網連接 - 我如何嘗試連接5秒,然後放棄?

+2

如果你的問題是關於一個特定的語言或框架,但如果添加一個標籤爲語言或框架您的問題發帖時是非常有用的。它有助於讓人們對有關該主題的問題感興趣的人士前進,從而更迅速地爲您解答問題。它還有助於未來的用戶爲他們的問題尋找解決方案。 –

+0

從谷歌搜索看起來像你是指iOS或OS X框架的工具 - 但問題和標籤應該這樣說,所以iOS/OS X的人看到它。 – twotwotwo

回答

1

NSTimer具有1秒的回調和計數器。如果5次嘗試失敗,則5秒鐘過去。

喜歡的東西:

var timerCounter = 0 
var timer : NSTimer? 

func shouldAttemptConnection() { 
    timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "attemptConnection", userInfo: nil, repeats: true) 
    self.attemptConnection() 
} 

func attemptConnection() { 
    if Reachability.isReachable() { 
    // Handle success code 

    } else if ++timerCounter >= 5 { 
    // Handle timeout code 

    } else { 
    // Try again 
    return 
    } 

    self.invalidateTimer() 
} 

func invalidateTimer() { 
    timer?.invalidate() 
    timer = nil 
    timerCounter = 0 
}