使用NSTimer制作闹钟

时间:2012-07-02 09:13:28

标签: objective-c ios xcode

我刚刚尝试制作一个带有本地通知的闹钟应用程序,但这并没有成功,因为我需要一个警报才能显示而不是进入iOS 5 +中的通知中心

到目前为止,我一直在努力使用nstimer及其功能,所以我想知道是否有人可以提供帮助。

我希望当用户选择一个时间(通过UIDatePicker,只有时间)时,才会在此时显示警报。我已经弄清楚如何从UIDatePicker获取时间,但我不知道如何正确设置nstimer的触发功能。这是我到目前为止所尝试的,如果有人可以提供帮助...非常感谢。谢谢

示例(它每隔一段时间就进入函数,反对我告诉它的某个时间......不是我想要的):

NSDate *timestamp;
NSDateComponents *comps = [[[NSDateComponents alloc] init] autorelease];

[comps setHour:2];
[comps setMinute:8];
timestamp = [[NSCalendar currentCalendar] dateFromComponents:comps];

NSTimer *f = [[NSTimer alloc] initWithFireDate:timestamp
                             interval:0
                               target:self
                             selector:@selector(test)
                             userInfo:nil repeats:YES];

NSRunLoop *runner = [NSRunLoop currentRunLoop];
[runner addTimer:f forMode: NSDefaultRunLoopMode]; 

1 个答案:

答案 0 :(得分:2)

正如@Nate所说的改变

NSTimer *f = [[NSTimer alloc] initWithFireDate:timestamp
                             interval:0
                               target:self
                             selector:@selector(test)
                             userInfo:nil repeats:YES];

NSTimer *f = [[NSTimer alloc] initWithFireDate:timestamp
                             interval:0
                               target:self
                             selector:@selector(test)
                             userInfo:nil repeats:NO]; //<-- Change here