鬧鐘

今天學了簡單的鬧鐘設置,人設置某個時間鬧鈴開始響,人主動讓鬧鐘中止(鬧鐘響鈴次數隨機),運行代碼以下:程序員

//
//  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秒
相關文章
相關標籤/搜索