当用户单击特定日期时,将显示带有该事件标题的警报

when user click on particular date a alert will show with that event title

我正在使用 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"
},]}

现在,当用户单击特定日期时,将显示带有该事件标题的警报。 这是我的逻辑

-(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];
    }
    }
}

请帮助我正确的逻辑 我是 ios 的新人,请帮忙.. 提前致谢。

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

函数内部,

-(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;
            }
        }
    }        
}

提取月、日、年后,您可以比较它们并据此显示事件