2013-06-06 2 views
0

알람 시계 iOS 앱을 쓰고 있습니다. UILocalNotification을 사용하여 처음입니다. 데이트 피커에서 데이트 할거야. 필자의 함수가 적절한 날짜를 지난 것인지 확인하기 위해 날짜 형식을 지정했습니다. 나는 UILocalNotification을 위해 필요한 모든 속성들을 검사했고 그것들은 모두 가지고 있었고 나의 통지는 여전히 실행되지 않을 것입니다. 왜 어떤 아이디어? 도와 주셔서 감사합니다.UILocal 알림이 실행되지 않습니다

#import "BIDAlarmViewController.h" 

@interface BIDAlarmViewController() 

@end 

@implementation BIDAlarmViewController 

@synthesize datePicker; 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
    // Custom initialization 
    return self; 
} 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view from its nib 


} 

- (void)didReceiveMemoryWarning{ 

[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

-(IBAction)setReminderUsingDateFromDatePicker: (id)sender{ 

[self scheduleNotificationForDate: datePicker.date]; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd 'at' HH:mm"]; 

NSString *formattedDateString = [dateFormatter stringFromDate:datePicker.date]; 


NSLog(@"Button Pressed.. date: %@", formattedDateString); 

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alarm activated" 
               message:@"Alarm has been set" 
               delegate:self cancelButtonTitle:@"OK" 
             otherButtonTitles:nil]; 

[alert show]; 
} 

-(void) scheduleNotificationForDate: (NSDate*)date { 

UILocalNotification *alarm = [[UILocalNotification alloc] init]; 
if (alarm) { 
    alarm.fireDate = date; 
    alarm.timeZone = [NSTimeZone defaultTimeZone]; 
    alarm.repeatInterval = 0; 
    alarm.soundName = @"alarmsound.caf"; 
    alarm.alertBody = @"Test message..."; 
    [[UIApplication sharedApplication] scheduleLocalNotification:alarm]; 
} 
} 

@end 
+1

응용 프로그램 대리인에서 didReceiveLocalNotification 메서드를 구현 했습니까? – powerj1984

+0

아니요, 아닙니다. 나는 그 위에 닦았다고 생각한다. 감사. – user1681673

+0

그냥 호기심에서 벗어났습니다.받을 방법이 없다면 어떻게 알림을 받으려고 했습니까? –

답변

1

http://developer.apple.com/library/ios/documentation/uikit/reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:didReceiveLocalNotification :

당신과 같이 앱 위임에 참조 된 방법을 구현했는지 확인 :

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification { 
    NSLog(@"Notification fired"!); 
} 

노트를 애플이 방법을 구현하는 :

을 로컬 알림은 원격 푸시 알림과 비슷하지만 은 그들은 동일한 장치를 에 전적으로 예약, 표시 및 수신합니다. 응용 프로그램에서 로컬 알림을 만들고 예약 할 수 있으며 운영 체제는 일정 날짜와 시간에이를 전달합니다. 응용 프로그램이 이 포 그라운드에서 활성화되어 있지 않으면 전달할 경우 경보를 표시하고 응용 프로그램 아이콘에 배지를 표시하거나 UILocalNotification 객체에 지정된 내용을 재생합니다. 응용 프로그램이 전경으로 에서 실행 중이면 경고, 배지 또는 소리가 없습니다. 대신, application : didReceiveLocalNotification : 대리자가 구현하는 경우 메서드가 호출됩니다.

로컬 알림이 발생했다는 알림을 받으려는 경우 대리자가이 메서드를 구현할 수 있습니다. 예를 들어, 응용 프로그램이 달력 응용 프로그램 인 경우 캘린더 이벤트 목록을 으로 열거 나 만기 날짜가 어느 날짜인지 결정하거나 곧 에 대해 발생할 수 있습니다. 또한 응용 프로그램 아이콘 배지 번호를 재설정 할 수 있으며 로컬 알림 개체의 userInfo 사전에있는 모든 사용자 지정 데이터에 액세스 할 수 있습니다.

+1

그게 문제입니다. 도와 주셔서 감사합니다. – user1681673

+0

응용 프로그램 대리인의 함수 본문에는 무엇이 들어가나요? – user1681673

+0

무엇을 하시겠습니까? 일반적으로 알림 메시지의 UIAlertView가 팝업됩니다. 그것은 정말로 당신에게 달려 있습니다! – powerj1984

관련 문제