웹 서비스에서 일부 이벤트를 수신합니다. Eventkit을 사용하여 프로그래밍 방식으로 이러한 이벤트를 추가합니다. 받은 이벤트를 추가하는 코드를 호출하는 Add
버튼이 있습니다. 그러나 반복되는 추가 작업은 병합보다는 이벤트를 복제합니다 (이벤트가 이미있는 경우).이벤트 킷을 사용하여 중복 이벤트를 처리하는 방법
이벤트가 중복되지 않도록하려면 어떻게해야합니까?
웹 서비스에서 일부 이벤트를 수신합니다. Eventkit을 사용하여 프로그래밍 방식으로 이러한 이벤트를 추가합니다. 받은 이벤트를 추가하는 코드를 호출하는 Add
버튼이 있습니다. 그러나 반복되는 추가 작업은 병합보다는 이벤트를 복제합니다 (이벤트가 이미있는 경우).이벤트 킷을 사용하여 중복 이벤트를 처리하는 방법
이벤트가 중복되지 않도록하려면 어떻게해야합니까?
추가하기 전에 기존 이벤트를 확인해야합니다. 아래 코드는이를 수행하는 방법을 보여줍니다. 이벤트를 식별하기 위해 제목과 시작일 만 확인 했으므로 필요에 따라 더 많은 매개 변수를 사용할 수 있습니다.
EKEventStore *eventStore = [[EKEventStore alloc] init];
NSPredicate *predicate = [eventStore predicateForEventsWithStartDate:[startDate dateByAddingTimeInterval:-60]
endDate:[endDate dateByAddingTimeInterval:60] calendars:nil];
NSArray *events = [eventStore eventsMatchingPredicate:predicate];
bool found = NO;
for (EKEvent *evt in events)
{
if ([evt.title isEqualToString:title] && [evt.startDate isEqualToDate:startDate])
{
found = YES;
break;
}
}
if(!found)
{
//Add your event here.
}
오류 : Calendar Domain 데몬에 대한 호출이 실패했습니다. Error Domain = EKCADErrorDomain Code = 1013 "작업을 완료 할 수 없습니다 (EKCADErrorDomain 오류 1013)." –
오류는 응용 프로그램에 달력 액세스 권한이 없음을 의미합니다. 앱의 iPhone 설정에서 활성화 할 수 있습니다. – Vignesh
이벤트 추가 버튼을 클릭하면 이벤트가 이미 있는지 확인한 다음 삽입해야합니다. 고유 식별자를 사용하여 이벤트를 확인할 수 있습니다. – RAJA
[this] (http://stackoverflow.com/q/6077613/2389078) 및 [that] (http://stackoverflow.com/q/19496772/2389078) 도움이 될 수 있습니다. – DroidDev
이벤트를 추가하는 코드를 보여주십시오. – Amar