2011-12-16 11 views
1

私のアプリケーションで使用するEKCalendars用にNSMutableArrayを作成しました。最初の起動時には、EventStoreからすべてのカレンダーがインポートされますが、Birthdaysカレンダーとデフォルトのカレンダーは除外され、ユーザー作成のカレンダーだけが残ります。しかし、問題は、誕生日カレンダーとデフォルトのカレンダーしかない場合です。これまでに何が得られたのか...。カレンダーの配列

for (int i = 0; i < theEventStore.calendars.count; i++) 
    { 
     EKCalendar *c = [theEventStore.calendars objectAtIndex:i]; 
     if (c.type != EKCalendarTypeBirthday && c.type != EKCalendarTypeSubscription) 
     { 
      if (c.type == EKCalendarTypeLocal && [c.title isEqualToString:@"Calendar"]) 
      { 
       NSLog(@"Removed Calendar: %@", c); 
      } 
      else 
      { 
       [self.calendarLst addObject:c]; 
       NSLog(@"Added Calendar: %@", c); 
      } 
     } 
    } 

私は少し困惑しています。どんな助けもありがとう。

+0

アプリがクラッシュしますか?その問題は何ですか?唯一のカレンダーがBirthday、Subscription、または 'Calendar'の場合は –

+0

です。その後、私は配列を使用しようとすると、アプリケーションがクラッシュします。 –

+0

ここでは何も本当に重要です。私は、クラッシュが何か他の原因によるものだと思う。 –

答えて

0

オリジナルのforループの後にこれを追加しました。これにより、配列内に何かが存在することが保証されます。

int count = self.calendarLst.count; 
NSLog(@"Count: %i",count); 

if (count == 0) 
{ 
    for (int i = 0; i < theEventStore.calendars.count; i++) 
    { 
     EKCalendar *c = [theEventStore.calendars objectAtIndex:i]; 
     if (c.type == EKCalendarTypeLocal && [c.title isEqualToString:@"Calendar"]) 
      { 
       [self.calendarLst addObject:c]; 
       NSLog(@"Added Calendar: %@", c); 
      } 
     } 
    } 
} 

問題はループのためではなく、空の配列でした。

+0

こんにちは、デフォルトのカレンダーは使用されていません、それはいつも捨てられますか?私はiPhoneをオランダ語で動かしているので、私のカレンダーのタイトルは「アジェンダ」です。それで、タイトルに基づいてどのカレンダーを非表示にするかを判断するのは正しいとは言えません。私は自分自身に関する質問をhttp://stackoverflow.com/questions/10530330/how-to-decide-whether-the-default-ekcalendar-calendar-can-be-hiddenに依頼しました。これに関して他の所見を得ましたか?乾杯。 – epologee