当用户点击特定的date时,将会显示一个提醒标题

我正在使用SAcalendar。 这是我的JSON:

data: - [ - { id: "1", event_start: "2014-06-09 11:30", event_end: "2014-06-09 12:30", title: "Click a date to create a new event and drag to change its date and time. Click on an existing event to modify. Click "Show Standard Settings" to set additional event properties." }, - { id: "2", event_start: "2017-01-03 16:30", event_end: "2017-01-03 17:30", title: "fgdgf" }, - { id: "3", event_start: "2017-01-11 03:30", event_end: "2017-01-11 06:00", title: "fdfgdg" },]} 

现在当用户点击特定的date时,一个警报将显示该事件标题。 这是我的逻辑

 -(void) SACalendar:(SACalendar*)calendar didSelectDate:(int)day month:(int)month year:(int)year { for(int i=0; i<EventArray.count; i++) { if([[EventArray objectAtIndex:i]objectForKey:@"event_start"] && [[EventArray objectAtIndex:i]objectForKey:@"event_end"]) { eventtitlestring = [[EventArray objectAtIndex:i] objectForKey:@"title"]; if(event_startString==eventtitlestring && event_endString==eventtitlestring) { UIAlertView *showevent = [[UIAlertView alloc]initWithTitle:@"Alert" message:self.eventtitlestring delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [showevent show]; } } } 

PLZ帮助我正确的逻辑我是新的IOS,请帮助..在此先感谢。

从我在问题中看到的。 理解如下。 您需要将日历中的选定date与json中给出的date进行比较。 如果匹配,那么你必须显示警报。 为此,您需要将选定的date与Json中给出的date进行比较。

在function里面,

 -(void) SACalendar:(SACalendar*)calendar didSelectDate:(int)day month:(int)month year:(int)year { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateFormatter.dateFormat = @"yyyy-MM-dd"; dateFormatter.timeZone = [NSTimeZone systemTimeZone]; for(int i=0; i < EventArray.count; i++) { NSString *eventStartString = [[EventArray objectAtIndex:i] objectForKey:@"event_start"]; NSString *eventEndString = [[EventArray objectAtIndex:i]objectForKey:@"event_end"]; if(eventStartString != nil && eventEndString != nil) {// s_ -> start; e_ -> end; eventStartString = [eventStartString substringToIndex:10]; eventEndString = [eventEndString substringToIndex:10]; NSDate *s_date = [dateFormatter dateFromString:eventStartString]; NSDate *e_date = [dateFormatter dateFromString:eventEndString] NSCalendar *myCalendar = [NSCalendar currentCalendar]; long s_day = [myCalendar component:NSCalendarUnitDay fromDate:s_date]; long s_month = [myCalendar component:NSCalendarUnitMonth fromDate:s_date]; long s_year = [myCalendar component:NSCalendarUnitYear fromDate:s_date]; long e_day = [myCalendar component:NSCalendarUnitDay fromDate:e_date]; long e_month = [myCalendar component:NSCalendarUnitMonth fromDate:e_date]; long e_year = [myCalendar component:NSCalendarUnitYear fromDate:e_date]; eventtitlestring = [[EventArray objectAtIndex:i] objectForKey:@"title"]; if ((day == (int)s_day) && (month == (int)s_month) && (year == (int)s_year)) { UIAlertView *showevent = [[UIAlertView alloc]initWithTitle:@"Alert" message:self.eventtitlestring delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [showevent show]; return; }else if ((day == (int)e_day) && (month == (int)e_month) && (year == (int)e_year)) { UIAlertView *showevent = [[UIAlertView alloc]initWithTitle:@"Alert" message:self.eventtitlestring delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [showevent show]; return; } } } } 

提取月份,date,年份后,您可以比较它们并相应地显示事件