2016-05-12 11 views
1

大学向けにイベントキットを使用してアプリケーションを作成しています。私はカレンダーを作成し、このカレンダー上のすべてのイベントを追加して読み込むために、彼に "defaultCalendar、automatic"のようにさせようとしています。これがあることを確認しようとするEventKitを作成してdefaultCalendarを自動作成します

私のコード:このコード

EKEventStore *店舗= [[EKEventStoreのalloc]のinit]を作るために呼び出す

//イム。

EKSource *localSource = nil; 
    for (EKSource *source in store.sources) 
     if (source.sourceType == EKSourceTypeLocal){ 
      localSource = source; 
      break; 
     } 

    EKCalendar *cal; 
    cal = [EKCalendar calendarWithEventStore:store]; 

    cal.title = @"NewCalendar"; 
    cal.source = localSource; 
    [store saveCalendar:cal commit:YES error:nil]; 


    //self.appDelegate.eventManager.selectedCalendarIdentifier = cal.calendarIdentifier; 
    // [cal.calendarIdentifier=cal.calendarIdentifier]; 


    [[NSUserDefaults standardUserDefaults] setObject:cal.calendarIdentifier forKey:@"NewCalendar"]; 

} 

}

は、そこで問題は、私はこのカレンダーを作成した後にのみ、私のアプリでこのいずれかを使用することができる方法です。 ありがとう

答えて

1

カレンダーを作成し、そのIDをNSUserDefaultsに保存するだけで済みます。識別子を取得したら、そのカレンダーをアプリでいつでも使用できます。あなたのコードはすでにcalというカレンダーを作成しています。あなたは、あなたがあなたの作成したキーの値として、カレンダーの識別子を格納することができ、その識別子

NSString *defaultCalendarIdentifier = [[NSUserDefaults standardUserDefaults] stringForKey:@"defaultCalendarIdentifier"]; 

を保存することができますので、そこから、まず、NSUserDefaultsにキーを作成します。

[[NSUserDefaults standardUserDefaults] setObject: [eventStore cal].calendarIdentifier forKey:@"defaultCalendarIdentifier"]; 

NSUserDefaultsは、ユーザーがアプリケーションを閉じて開いた後でも、カレンダーIDを保存します。

そのカレンダーからイベントを作成して読み込むときは、保存したばかりのカレンダーIDを使ってイベントを作成してください。

EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
//get default Calendar Identifier 
NSString *defaultCalendarIdentifier = [[NSUserDefaults standardUserDefaults] 
         stringForKey:@"defaultCalendarIdentifier"]; 
event.calendar = [eventStore calendarWithIdentifier:defaultCalendarIdentifier 

これは基本的にカレンダーを作成してアプリで使用する方法です。

+0

ありがとうございます。答え: –

+0

問題ありません。あなたはそれを働いてうれしいです。 – pessionic

関連する問題