2013-06-04 7 views
1

내 애플 리케이션 todo 기능을 추가하는 노력하고 있습니다. 모든 것이 올바르게 보이는 것처럼 보이지만 Reminder에서 실패한 create를 얻지 만 NIL의 오류 값을 얻습니다. (I 텍스트와의 UIViewController에서 날짜를 당겨입니다 - - 모든 것이 제대로 연결되어) 여기에 관련 코드입니다 .`알림 생성 오류 메시지 NIL과 함께

-(IBAction)createButtonPressed 
{ 

    // Setup Variables for coverting date: 
    int year; 
    int month; 
    int day; 
    int hour; 
    int minute; 
    int second; 
    NSDate *actualDate; 
    NSDateComponents *dateComps; 
    NSCalendar *calendar; 
    NSDateFormatter *dateFormatter; 

    actualDate = dateValue.date; 
    calendar = [[NSCalendar currentCalendar] copy]; 
    dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setTimeZone:[calendar timeZone]]; 
    [dateFormatter setDateFormat:@"yyyy"]; 
    year = [[dateFormatter stringFromDate:actualDate] intValue]; 
    [dateFormatter setDateFormat:@"MM"]; 
    month = [[dateFormatter stringFromDate:actualDate] intValue]; 
    [dateFormatter setDateFormat:@"dd"]; 
    day = [[dateFormatter stringFromDate:actualDate] intValue]; 
    [dateFormatter setDateFormat:@"HH"]; 
    hour = [[dateFormatter stringFromDate:actualDate] intValue]; 
    [dateFormatter setDateFormat:@"mm"]; 
    minute = [[dateFormatter stringFromDate:actualDate] intValue]; 
    [dateFormatter setDateFormat:@"ss"]; 
    second = [[dateFormatter stringFromDate:actualDate] intValue]; 
    dateComps = [[NSDateComponents alloc] init]; 
    [dateComps setTimeZone:[calendar timeZone]]; 
    [dateComps setDay:day]; 
    [dateComps setMonth:month]; 
    [dateComps setYear:year]; 
    // Create the Todo 
    EKReminder *reminder = [EKReminder reminderWithEventStore:store]; 


    [reminder setTitle:self.actionText.text]; 

    [reminder setDueDateComponents:dateComps]; 

    EKCalendar *defaultReminderList = [store defaultCalendarForNewReminders]; 

    [reminder setCalendar:defaultReminderList]; 

    NSError *error = nil; 
    BOOL success = [store saveReminder:reminder 
           commit:YES 
           error:&error]; 
    if (!success) { 
     NSLog(@"Error saving reminder: %@", [error localizedDescription]); 
     // Popup a messaging saying the reason why you can't create the todo. 

    } else { 
     // Popup a message saying the to do was created 
    } 


} 

`이 코드의 대부분은 올바른 형식으로 날짜를 얻기 위해 노력하고있다. "오류 절약 알림 : (널)"내 NSLog는 다음을 보여줍니다

+0

'NSLog ("%의 @", 저장 @) 전과'권리 알림 저장 및 그게 당신에게 무엇을 참조하십시오. – Undo

+0

상점이 null ... 캘린더에 액세스 할 권한이 없음을 의미해야 함 ... 내가 말할 수있는 것 –

+0

설정을 체크인하고 앱에 캘린더에 액세스 할 권한이 있는지 확인하십시오. - 설정> 개인 정보> 캘린더 > 귀하의 응용 프로그램 (켜져 있어야합니다) – Undo

답변

1

추가의 viewDidLoad 함수에 다음 코드를

// Add Todo Feature 
    store = [[EKEventStore alloc] init]; 
    [store requestAccessToEntityType:EKEntityTypeReminder 
          completion:^(BOOL granted, NSError *error) { 
           // Handle not being granted permission 
          }];