Added NSTimer correctly

This commit is contained in:
Goktug Yilmaz 2016-02-25 16:07:06 -08:00
parent f11a71a8af
commit a8c725da3a
2 changed files with 37 additions and 0 deletions

View File

@ -0,0 +1,33 @@
//
// NSTimerExtensions.swift
// EZSwiftExtensions
//
// Created by Lucas Farah on 15/07/15.
// Copyright (c) 2016 Lucas Farah. All rights reserved.
//
import UIKit
extension NSTimer {
/// EZSE: Runs every x seconds, to cancel use: timer.invalidate()
public static func runThisEvery(seconds seconds: NSTimeInterval, handler: NSTimer! -> Void) -> NSTimer {
let fireDate = CFAbsoluteTimeGetCurrent()
let timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, fireDate, seconds, 0, 0, handler)
CFRunLoopAddTimer(CFRunLoopGetCurrent(), timer, kCFRunLoopCommonModes)
return timer
}
/// EZSE: run function after x seconds
public static func runThisAfterDelay(seconds seconds: Double, after: () -> ()) {
runThisAfterDelay(seconds: seconds, queue: dispatch_get_main_queue(), after: after)
}
//TODO: Make this easier
/// EZSwiftExtensions - dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0)
public static func runThisAfterDelay(seconds seconds: Double, queue: dispatch_queue_t, after: ()->()) {
let time = dispatch_time(DISPATCH_TIME_NOW, Int64(seconds * Double(NSEC_PER_SEC)))
dispatch_after(time, queue, after)
}
}

View File

@ -41,6 +41,7 @@
E1839E371BF79974002212C6 /* UITextViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1839E1B1BF79974002212C6 /* UITextViewExtensions.swift */; };
E1839E381BF79974002212C6 /* UIViewControllerExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1839E1C1BF79974002212C6 /* UIViewControllerExtensions.swift */; };
E1839E391BF79974002212C6 /* UIViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1839E1D1BF79974002212C6 /* UIViewExtensions.swift */; };
E197F7BD1C7FCE9D00FC6144 /* NSTimerExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E197F7BC1C7FCE9D00FC6144 /* NSTimerExtensions.swift */; };
E1CB3C1C1C25FFA000DF77CD /* DoubleExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1CB3C1B1C25FFA000DF77CD /* DoubleExtensions.swift */; };
/* End PBXBuildFile section */
@ -81,6 +82,7 @@
E1839E1B1BF79974002212C6 /* UITextViewExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UITextViewExtensions.swift; path = Sources/UITextViewExtensions.swift; sourceTree = SOURCE_ROOT; };
E1839E1C1BF79974002212C6 /* UIViewControllerExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UIViewControllerExtensions.swift; path = Sources/UIViewControllerExtensions.swift; sourceTree = SOURCE_ROOT; };
E1839E1D1BF79974002212C6 /* UIViewExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UIViewExtensions.swift; path = Sources/UIViewExtensions.swift; sourceTree = SOURCE_ROOT; };
E197F7BC1C7FCE9D00FC6144 /* NSTimerExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NSTimerExtensions.swift; sourceTree = "<group>"; };
E1CB3C1B1C25FFA000DF77CD /* DoubleExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DoubleExtensions.swift; path = Sources/DoubleExtensions.swift; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
@ -115,6 +117,7 @@
E1839E0F1BF79974002212C6 /* IntExtentions.swift */,
E1839E101BF79974002212C6 /* NSDateExtensions.swift */,
E1839E111BF79974002212C6 /* NSObjectExtentions.swift */,
E197F7BC1C7FCE9D00FC6144 /* NSTimerExtensions.swift */,
E1839E121BF79974002212C6 /* StringExtensions.swift */,
E1839E131BF79974002212C6 /* UIButtonExtensions.swift */,
E1839E141BF79974002212C6 /* UIColoredView.swift */,
@ -245,6 +248,7 @@
E1839E301BF79974002212C6 /* UIColoredView.swift in Sources */,
E1839E1E1BF79974002212C6 /* ArrayExtensions.swift in Sources */,
E1839E2D1BF79974002212C6 /* NSObjectExtentions.swift in Sources */,
E197F7BD1C7FCE9D00FC6144 /* NSTimerExtensions.swift in Sources */,
E1839DB91BF79335002212C6 /* AppDelegate.swift in Sources */,
E1839E201BF79974002212C6 /* BlockLongPress.swift in Sources */,
E1839E381BF79974002212C6 /* UIViewControllerExtensions.swift in Sources */,