2013-07-23 2 views
2

내 앱에 이벤트를 나열하고 있습니다. 사용자는 이벤트를 생성, 편집 및 삭제할 수 있습니다. viewDidLoad 메서드에서 필자는 필요한 모든 이벤트를 가져 와서 배열로 푸시합니다. 예상대로 작동합니다.EKEventStoreChangedNotification 알림 처리

이벤트를 생성, 편집 및 삭제할 때 나는 꽤 잘 작동하는 EKEventEditViewControllerEKEventViewController을 사용합니다. 컨트롤러의 델리게이트 메소드에서 배열에 필요한 변경을 수행하고 내 뷰를 다시로드합니다.

물론 사용자가 다른 앱 (예 : 내장 캘린더 앱)에서 일부 변경을 수행하는 경우에도 알고 처리해야합니다. 그래서 나는 EKEventStoreChangedNotification을 관찰한다. 해당 알림에서 나는 어떤 이벤트 또는 앱이 아닌 "변경 사항이 발생했습니다"만 표시됩니다. 사실 내가 알고 싶은 것은 내 앱이나 다른 앱에서 변경이 발생하고 어떤 이벤트가 변경된 경우입니다. EKEventEditViewControllerDelegate 메소드의 변경 사항 (이미 앱에서 변경 한 사항)을 처리 했으므로 다시 처리 할 필요가 없습니다.

변경된 개체가 무엇인지 모르는 경우 ans를 가져 와서 모두 정렬해야합니다.

현재로서는 캘린더 (개발 장치)에 5 개의 이벤트 만 있지만 모든 이벤트를 가져오고 정렬하는 데는 문제가되지 않지만 사용자가 1000 개 이상일 경우 아마 하나의 이벤트가 변경 될 수 있습니다. .

제 질문은 : EKEventStoreChangedNotification 처리 방법은?

+0

안녕하세요 @mert이 해결책을 찾았습니까? 그렇다면 업데이트 할 수 있습니까? 나는 또한 비슷한 문제에 직면하고있다. –

답변

0

모든 이벤트를 가져 오는 대신 온 스크린/활성 이벤트 만 업데이트 할 수 있습니까?

+0

나는 캘린더와 소스 또한 집중되어야한다고 생각한다. – frank

1

다음 코드로 어떤 이벤트가 변경되었는지 정확하게 감지 할 수 있습니다 [거부 코드는 제 생각이 아니며 다른 스택 오버플로 응답에서 발견하여 조금 수정했습니다].

eventstore와의 상호 작용을 위해 "JSCalendarManager"라는 라이브러리를 사용하고 있으며 내 응용 프로그램을 사용하여 만든 이벤트와 iCalendar와 동기화 된 이벤트로 로컬 DB에 eventIdentifier를 저장 했으므로 검색 할 시간을 검색 할 수 있습니다. iCalendar의 이벤트에 대해 변경된 이벤트를 찾습니다.

+0

NSObject * ekObjectID = [(NSManagedObject *) ekEvent objectID]에서 오류가 발생했습니다. 이 코드 줄은 퇴출하십시오 –

+0

오류가 무엇인지 말해 주시겠습니까? –

+0

1) 정의되지 않은 NsManagedObject 2) objectID가 ekEvent에 없습니다. –