2011-05-16 47 views
0

我在創建鬧鐘應用時遇到了麻煩。 我只有Datepicker,標籤,按鈕。在選定時間的iPhone報警

@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]; 
    } 
} 

但我它不觸發報警:(我不能找出原因。

+0

首先檢查您的checkAlarm函數是否調用或我f它調用然後我認爲設置委託:自己而不是委託:無 – 2011-05-16 12:50:09

回答

0

與斷點檢查您的報警方法是否被調用? 試像這樣...東西

-(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] ; 

    } 
+0

顯示警告:Usused變量'checkAlarm' – 2011-05-16 13:33:42