激活iPhone闹钟并发出声音

时间:2011-12-06 07:10:29

标签: iphone ios ios4 ios5

第一篇帖子和第一个iPhone应用程序正在制作中,所以请原谅任何n00b错误。我无法启动闹钟。我有一个Datepicker和一个按钮作为代码的关键。这是.h文件

@interface Alarm : UIViewController

@property (retain, nonatomic) NSDate *alarm;
@property (retain, nonatomic) IBOutlet UIButton *sleepButton;
@property (retain, nonatomic) NSTimer *timer;
@property (retain, nonatomic) IBOutlet UIDatePicker *timePicker;

- (IBAction)startAlarm:(id)sender;
- (void)checkAlarm;

@end

这是.m文件。

- (IBAction)startAlarm:(id)sender
{
    self.alarm = [self.timePicker date];

self.timer = [NSTimer scheduledTimerWithTimeInterval:(1.0) target:self selector:@selector(checkAlarm) userInfo:nil repeats:YES];
{

- (void)checkAlarm
{
    // alarm is reached
    if ([NSDate date] == self.alarm)
    {
         // rest of code goes here
    }
{

我也不知道如何制作声音并使其重复,所以如果我能得到一些关于如何做到这一点的指导,那就太好了。谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于:

if ([NSDate date] == self.alarm)

日期具有毫秒级的分辨率,而你的计时器每秒只会发射一次 - 它们完美对齐的可能性相当小。

相反,你应该检查:

if ([[NSDate date] compare: self.alarm] == NSOrderedDescending)

检查警报日期是否已通过。