File tree Expand file tree Collapse file tree 2 files changed +16
-19
lines changed
bk2ch22p784smackMe/ch35p1041smackMe Expand file tree Collapse file tree 2 files changed +16
-19
lines changed Original file line number Diff line number Diff line change 22
33import UIKit
44
5- class MyTimer : NSObject {
5+ class CancelableTimer : NSObject {
66
7- var q = dispatch_queue_create ( " timer " , nil )
8- var timer : dispatch_source_t !
9- var firsttime = true
10- var once : Bool
11- var handler : ( ) -> ( )
7+ private var q = dispatch_queue_create ( " timer " , nil )
8+ private var timer : dispatch_source_t !
9+ private var firsttime = true
10+ private var once : Bool
11+ private var handler : ( ) -> ( )
1212
1313 init ( once: Bool , handler: ( ) -> ( ) ) {
1414 self . once = once
1515 self . handler = handler
1616 super. init ( )
1717 }
1818
19- func start ( interval: Double ) {
19+ func startWithInterval ( interval: Double ) {
2020 self . firsttime = true
2121 self . cancel ( )
2222 self . timer = dispatch_source_create (
2323 DISPATCH_SOURCE_TYPE_TIMER,
2424 0 , 0 , self . q)
2525 dispatch_source_set_timer ( self . timer,
2626 dispatch_walltime ( nil , 0 ) ,
27- UInt64 ( interval * Double( NSEC_PER_SEC) ) , UInt64 ( 0.05 * Double( NSEC_PER_SEC) ) )
27+ UInt64 ( interval * Double( NSEC_PER_SEC) ) ,
28+ UInt64 ( 0.05 * Double( NSEC_PER_SEC) ) )
2829 dispatch_source_set_event_handler ( self . timer, {
2930 if self . firsttime {
3031 self . firsttime = false
Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ class ViewController: UIViewController {
66
77 let motman = CMMotionManager ( )
88 var polltimer : NSTimer !
9- var canceltimer : MyTimer !
9+ var canceltimer : CancelableTimer !
1010
1111 var oldX = 0.0
1212 var oldY = 0.0
@@ -46,28 +46,24 @@ class ViewController: UIViewController {
4646 self . oldTime = dat. timestamp
4747 self . lastSlap = - 1
4848 self . canceltimer? . cancel ( )
49- self . canceltimer = MyTimer ( once: true ) {
50- self . report ( " left " )
49+ self . canceltimer = CancelableTimer ( once: true ) {
50+ println ( " left " )
5151 }
52- self . canceltimer. start ( 0.5 )
52+ self . canceltimer. startWithInterval ( 0.5 )
5353 }
5454 } else if x > thresh {
5555 if dat. timestamp - self . oldTime > 0.5 || self . lastSlap == - 1 {
5656 self . oldTime = dat. timestamp
5757 self . lastSlap = 1
5858 self . canceltimer? . cancel ( )
59- self . canceltimer = MyTimer ( once: true ) {
60- self . report ( " right " )
59+ self . canceltimer = CancelableTimer ( once: true ) {
60+ println ( " right " )
6161 }
62- self . canceltimer. start ( 0.5 )
62+ self . canceltimer. startWithInterval ( 0.5 )
6363 }
6464 }
6565 }
6666
67- func report( s: String ) {
68- println ( s)
69- }
70-
7167
7268
7369}
You can’t perform that action at this time.
0 commit comments