今天學了簡單的鬧鐘設置,人設置某個時間鬧鈴開始響,人主動讓鬧鐘中止(鬧鐘響鈴次數隨機),運行代碼以下:程序員
// // Person.h // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import <Foundation/Foundation.h> #import "Agreement.h" @interface Person : NSObject<getUp> @property(nonatomic,strong)id<getUp> delegate; - (void) settime; - (void) up:(int) ringtimes; @property(nonatomic,assign)int stoptime; @end // // Person.m // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import "Person.h" #import "Clock.h" #import "Agreement.h" @implementation Person - (id) init { self=[super init]; if (self) { _stoptime=arc4random()%7; _stoptime+=3; } return self; } - (void) settime { NSLog(@"人定了鬧鐘,鬧鐘響了%i次,人才起牀",_stoptime); [_delegate reveille]; } - (void) up:(int) ringtimes { if (ringtimes==_stoptime) { NSLog(@"人想:怎麼響個不停,關了你,看你還響不響!"); [_delegate stop]; } else { NSLog(@"人想:我要再睡一會,不想起牀!"); } } - (void) dealloc { NSLog(@"人對象被釋放"); } @end // // Person.m // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import "Person.h" #import "Clock.h" #import "Agreement.h" @implementation Person - (id) init { self=[super init]; if (self) { _stoptime=arc4random()%7; _stoptime+=3; } return self; } - (void) settime { NSLog(@"人定了鬧鐘,鬧鐘響了%i次,人才起牀",_stoptime); [_delegate reveille]; } - (void) up:(int) ringtimes { if (ringtimes==_stoptime) { NSLog(@"人想:怎麼響個不停,關了你,看你還響不響!"); [_delegate stop]; } else { NSLog(@"人想:我要再睡一會,不想起牀!"); } } - (void) dealloc { NSLog(@"人對象被釋放"); } @end // // Person.m // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import "Person.h" #import "Clock.h" #import "Agreement.h" @implementation Person - (id) init { self=[super init]; if (self) { _stoptime=arc4random()%7; _stoptime+=3; } return self; } - (void) settime { NSLog(@"人定了鬧鐘,鬧鐘響了%i次,人才起牀",_stoptime); [_delegate reveille]; } - (void) up:(int) ringtimes { if (ringtimes==_stoptime) { NSLog(@"人想:怎麼響個不停,關了你,看你還響不響!"); [_delegate stop]; } else { NSLog(@"人想:我要再睡一會,不想起牀!"); } } - (void) dealloc { NSLog(@"人對象被釋放"); } @end // // Clock.h // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import <Foundation/Foundation.h> #import "Agreement.h" @class Person; @interface Clock : NSObject <getUp> @property(nonatomic,retain)NSTimer * timer; @property(nonatomic,assign)int timerCount; @property(nonatomic,weak)Person *person; @end // // Clock.m // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import "Clock.h" #import "Agreement.h" #import "Person.h" @implementation Clock - (id) init { self=[super init]; if (self) { _timer=[NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(reveille) userInfo:nil repeats:YES]; } return self; } - (void) reveille { for (int i=1; i<=100; i++) { NSDate *today=[NSDate date]; NSDateFormatter *format=[NSDateFormatter new]; [format setDateFormat:@"當前時間爲:yyyy年MM月dd日 HH時mm分ss秒"]; NSString *now=[format stringFromDate:today]; if (i<=1) { if ( [now compare:@"當前時間爲:2015年06月03日 19時24分"]==NSOrderedDescending) { _timerCount++; [_person up:_timerCount]; NSLog(@"鬧鐘響了第%i次:'啦啦啦,啦啦啦,我是賣報的小畫家'%@",_timerCount,now); } else{ NSLog(@"鬧鐘%@",now); } } } } - (void) stop { [_timer invalidate]; } - (void) dealloc { NSLog(@"鬧鐘對象被釋放"); } @end // // Agreement.h // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import <Foundation/Foundation.h> @protocol getUp <NSObject> @required @optional - (void) reveille; - (void) stop; @property(nonatomic,assign)int stoptime; @end // // main.m // 鬧鐘 // // Created by 非凡程序員 on 15/6/3. // Copyright (c) 2015年 wzhen. All rights reserved. // #import <Foundation/Foundation.h> #import "Person.h" #import "Clock.h" int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... Person *person=[[Person alloc]init]; Clock *clock=[[Clock alloc]init]; person.delegate=clock; clock.person=person; [person settime]; [[NSRunLoop currentRunLoop]run]; NSLog(@"Hello, World!"); } return 0; }
運行結果以下:dom
2015-06-03 19:23:49.885 鬧鐘[3126:1614512] 人定了鬧鐘,鬧鐘響了6次,人才起牀 2015-06-03 19:23:49.891 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分49秒 2015-06-03 19:23:50.886 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分50秒 2015-06-03 19:23:51.890 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分51秒 2015-06-03 19:23:52.890 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分52秒 2015-06-03 19:23:53.887 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分53秒 2015-06-03 19:23:54.890 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分54秒 2015-06-03 19:23:55.886 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分55秒 2015-06-03 19:23:56.886 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分56秒 2015-06-03 19:23:57.887 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分57秒 2015-06-03 19:23:58.885 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分58秒 2015-06-03 19:23:59.887 鬧鐘[3126:1614512] 鬧鐘當前時間爲:2015年06月03日 19時23分59秒 2015-06-03 19:24:00.886 鬧鐘[3126:1614512] 人想:我要再睡一會,不想起牀! 2015-06-03 19:24:00.887 鬧鐘[3126:1614512] 鬧鐘響了第1次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分00秒 2015-06-03 19:24:01.891 鬧鐘[3126:1614512] 人想:我要再睡一會,不想起牀! 2015-06-03 19:24:01.891 鬧鐘[3126:1614512] 鬧鐘響了第2次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分01秒 2015-06-03 19:24:02.891 鬧鐘[3126:1614512] 人想:我要再睡一會,不想起牀! 2015-06-03 19:24:02.891 鬧鐘[3126:1614512] 鬧鐘響了第3次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分02秒 2015-06-03 19:24:03.891 鬧鐘[3126:1614512] 人想:我要再睡一會,不想起牀! 2015-06-03 19:24:03.891 鬧鐘[3126:1614512] 鬧鐘響了第4次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分03秒 2015-06-03 19:24:04.886 鬧鐘[3126:1614512] 人想:我要再睡一會,不想起牀! 2015-06-03 19:24:04.886 鬧鐘[3126:1614512] 鬧鐘響了第5次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分04秒 2015-06-03 19:24:05.891 鬧鐘[3126:1614512] 人想:怎麼響個不停,關了你,看你還響不響! 2015-06-03 19:24:05.891 鬧鐘[3126:1614512] 鬧鐘響了第6次:'啦啦啦,啦啦啦,我是賣報的小畫家'當前時間爲:2015年06月03日 19時24分05秒