第一篇帖子和第一个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
}
{
我也不知道如何制作声音并使其重复,所以如果我能得到一些关于如何做到这一点的指导,那就太好了。谢谢!
答案 0 :(得分:0)
问题在于:
if ([NSDate date] == self.alarm)
日期具有毫秒级的分辨率,而你的计时器每秒只会发射一次 - 它们完美对齐的可能性相当小。
相反,你应该检查:
if ([[NSDate date] compare: self.alarm] == NSOrderedDescending)
检查警报日期是否已通过。