gpt4 book ai didi

objective-c - isEqualToString 无法正常工作

转载 作者:行者123 更新时间:2023-11-29 04:20:56 27 4
gpt4 key购买 nike

我正在制作一个应用程序,它创建一个新日历,然后使用该日历添加事件等。我可以很好地创建日历,但我试图运行检查以查看日历是否存在,因此,不要每次都创建第二个具有相同名称的日历。换句话说,只需创建一次新日历。

我正在设置一个 int 变量并运行一个循环来检查设备上每个日历的标题属性,但 int 变量永远不会更改,即使我正在搜索的日历名称的字符串匹配。

这是我的“检查日历”代码:

-(void)checkForCalendar {

EKEventStore *eventStore = [[EKEventStore alloc] init];
NSArray *calendarArray = [eventStore calendarsForEntityType:EKEntityTypeEvent];
//NSLog(@"%@", calendarArray);

for (int x = 0; x < [calendarArray count]; x++) {

EKCalendar *cal = [calendarArray objectAtIndex:x];
NSString *title = [cal title];
if ([title isEqualToString:@"AFTP"] ) {
calendarExists = 1;
}else{
calendarExists = 0;
}
}

[self createCalendar];

}

这是我的“创建”日历部分:(工作正常,我总是得到一个“0”而不是 calendarExists int 的 1。)

-(void)createCalendar {

NSLog(@"%d",calendarExists);
if (calendarExists == 0) {
EKEventStore* eventStore = [[EKEventStore alloc] init];

NSString* calendarName = @"AFTP";
EKCalendar* calendar;

// Get the calendar source
EKSource* localSource;
for (EKSource* source in eventStore.sources) {
if (source.sourceType == EKSourceTypeCalDAV)
{
localSource = source;
break;
}
}

if (!localSource)
return;

calendar = [EKCalendar calendarForEntityType:EKEntityTypeEvent eventStore:eventStore];
calendar.source = localSource;
calendar.title = calendarName;

[eventStore saveCalendar:calendar commit:YES error:nil];
}
}

最佳答案

我认为在您的代码的这一部分中:

    if ([title isEqualToString:@"AFTP"] ) {
calendarExists = 1;
}else{
calendarExists = 0;
}

将变量设置为 1 后需要中断,否则下一轮循环将再次将其设置回 0:

    if ([title isEqualToString:@"AFTP"] ) {
calendarExists = 1;
break;
}

关于objective-c - isEqualToString 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000117/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com