【问题标题】:iphone alarm at selected timeiphone闹钟在选定的时间
【发布时间】:2011-05-16 12:44:25
【问题描述】:

我在创建警报应用程序时遇到问题。 我只有日期选择器、标签、按钮。

@interface app6ViewController : UIViewController {
 UILabel *dateLabel;
UIDatePicker *datePicker;
    NSDate *alarm;
}

-(IBAction)getSelection;

    -(IBAction)checkAlarm;

@property(nonatomic,retain) IBOutlet UILabel *dateLabel;
@property(nonatomic,retain) IBOutlet UIDatePicker *datePicker;


@end

在.m文件中

    -(void)getSelection
{

 //from date picker good part

    NSLocale *usLocale = [[[NSLocale alloc]
                           initWithLocaleIdentifier:@"en_US"] autorelease];

    NSDate *pickerDate = [datePicker date];
    NSString *selectionString = [[NSString alloc] initWithFormat:@"%@",
                                 [pickerDate descriptionWithLocale:usLocale]];
    dateLabel.text = selectionString;

    [selectionString release];


    alarm = pickerDate;

    //[mylabel setText:(@"text")]; //this string works
    NSTimer *checkAlarm = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(checkAlarm:) userInfo:nil repeats:YES];

}

-(void)checkAlarm:(NSTimer *)t{
    if ([NSDate date] == alarm){
        // Alarm reached
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" 
        message:@"Alarm"
        delegate:nil 
        cancelButtonTitle:@"OK" 
        otherButtonTitles: nil];
        [alert show];
        [alert release]  ;   
        [t invalidate]; 
    }
}

但它不会触发警报:(我不知道为什么。

【问题讨论】:

  • 首先检查你的 checkAlarm 函数是否调用或者如果它调用然后我认为设置委托:自我而不是委托:无

标签: iphone timer alarm


【解决方案1】:

用断点检查你的报警方法是否被调用?? 像这样尝试......某事

-(void)getSelection
{

 //from date picker good part

    NSLocale *usLocale = [[[NSLocale alloc]
                           initWithLocaleIdentifier:@"en_US"] autorelease];

    NSDate *pickerDate = [datePicker date];
    NSString *selectionString = [[NSString alloc] initWithFormat:@"%@",
                                 [pickerDate descriptionWithLocale:usLocale]];
    dateLabel.text = selectionString;

    [selectionString release];


    alarm = pickerDate;

    //[mylabel setText:(@"text")]; //this string works

    NSTimer *checkAlarm =[NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(checkAlarm:) userInfo:nil repeats:no]; 
}

-(void)checkAlarm{
    if ([NSDate date] == alarm){
        // Alarm reached
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert" 
        message:@"Alarm"
        delegate:nil 
        cancelButtonTitle:@"OK" 
        otherButtonTitles: nil];
        [alert show];
        [alert release]  ;   

    }

【讨论】:

  • 显示警告:Usused variable 'checkAlarm'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
相关资源
最近更新 更多