Iphone 无法获取日历标题

Iphone 无法获取日历标题,iphone,ios,ios4,calendar,Iphone,Ios,Ios4,Calendar,我提供了一个tableview,用户可以在其中选择将事件放置在哪个日历中。在iOS 5中,我使用新的EKCalendarChooser,但为了适应那些不更新的人,我正在制作自己的calendarchooser 要在手机上获取日历,我使用以下方法: - (void)viewDidLoad { [super viewDidLoad]; [self setWritableCalendars:[self getAllWritableCalendars]]; }

我提供了一个tableview,用户可以在其中选择将事件放置在哪个日历中。在iOS 5中,我使用新的EKCalendarChooser,但为了适应那些不更新的人,我正在制作自己的calendarchooser

要在手机上获取日历,我使用以下方法:

- (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行]]title]始终为零。tableview显示有两个单元格,可以单击,但没有文本

当我强制这段代码在iOS5中运行时,它可以正常工作,并显示所有日历标题


我在这里遗漏了什么?

您的数组有两个对象,但对象的标题真的设置好了吗?可能包括
NSLog(@“%@,[[self.writeablecalendars objectAtIndex:indexPath.row]说明])


在您的
viewDidLoad
方法中,
[super viewDidLoad]应该是第一行。

您的数组有两个对象,但是对象的标题真的设置好了吗?可能包括
NSLog(@“%@,[[self.writeablecalendars objectAtIndex:indexPath.row]说明])


在您的
viewDidLoad
方法中,
[super viewDidLoad]应该是第一行。

从那段代码我写下了下面的代码

EKEventStore *eventDB = [[EKEventStore alloc]init];    
NSMutableArray *allCalendars = [NSMutableArray arrayWithArray:[eventDB calendars]];
for (int i=0; i<allCalendars.count; i++)
{
    NSLog(@"Title:%@",[[allCalendars objectAtIndex:i] title]);
}
EKEventStore*eventDB=[[EKEventStore alloc]init];
NSMutableArray*allCalendars=[NSMutableArray arrayWithArray:[eventDB calendars]];

对于(inti=0;i,我从代码中写下以下代码

EKEventStore *eventDB = [[EKEventStore alloc]init];    
NSMutableArray *allCalendars = [NSMutableArray arrayWithArray:[eventDB calendars]];
for (int i=0; i<allCalendars.count; i++)
{
    NSLog(@"Title:%@",[[allCalendars objectAtIndex:i] title]);
}
EKEventStore*eventDB=[[EKEventStore alloc]init];
NSMutableArray*allCalendars=[NSMutableArray arrayWithArray:[eventDB calendars]];

对于(int i=0;iI尝试了这一点,对象中的标题都为零,并且“允许修改”为否。这很奇怪。可写日历是一个数组属性,按常规合成。它是在-(NSArray*)中构建的getAllWritableCalendars方法。我试过了,对象中的标题都是零,并且“允许修改”是否。这很奇怪。writableCalendars是一个数组属性,按常规合成。它是在-(NSArray*)getAllWritableCalendars方法中构建的。