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