Я представляю табличное представление, где пользователи могут выбирать, в какой календарь помещать событие.В iOS 5 я использую новый EKCalendarChooser, но для размещения тех, кто не обновляется, я делаю свой собственный выбор календаря.
Чтобы получить календари на телефоне, я использую это:
- (void)viewDidLoad
{
[super viewDidLoad];
[self setWritableCalendars:[self getAllWritableCalendars]];
}
- (NSArray *)getAllWritableCalendars
{
EKEventStore *eventDB = [[EKEventStore alloc]init];
NSMutableArray *allCalendars = [NSMutableArray arrayWithArray:[eventDB calendars]];
NSPredicate *filter = [NSPredicate predicateWithFormat:@"allowsContentModifications == YES"];
[allCalendars filterUsingPredicate:filter];
NSArray *_writables = [NSArray arrayWithArray:allCalendars];
return _writables;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if ([[self writableCalendars] count] > 0)
{
cell.textLabel.text = [[[self writableCalendars] objectAtIndex:[indexPath row]] title];
}
else
{
cell.textLabel.text = @"No calendars found";
}
return cell;
}
Проблема в том, что, хотя writableCalendars имеет два объекта, объект [[[self writableCalendars] objectAtIndex: [indexPath row]] title] всегда равен нулю.Представление таблицы представлено двумя ячейками, по которым можно щелкнуть мышью, но без текста.
Когда я принудительно запускаю этот код в iOS 5, он работает нормально, и отображаются все заголовки календаря.
Что такоеЯ здесь скучаю?