2013-10-21 2 views
-1

내 앱의 약속 레코드를 장치의 기본 달력으로 복사하는 응용 프로그램을 개발 중입니다. 나는 그것을하기 위해 다음 코드를 사용하고있다. 여기'saveEvent : span : commit : error :'메서드를 사용하면 iOS7 장치가 다시 시작됩니다.

NSString *eventIde = nil; 

EKEventStore *eventStore = [[EKEventStore alloc] init]; 
EKCalendar *calendarDef = [eventStore defaultCalendarForNewEvents]; 
EKEvent *event = [EKEvent eventWithEventStore:eventStore]; 
[event setCalendar:calendarDef]; 

//set values to this event. like title, notes, startDate, endDate, location 

NSError *err1 = nil;  
BOOL isStoredd = [eventStore saveEvent:event span:EKSpanThisEvent commit:YES error:&err1]; 

if(isStoredd){ 
     eventIde = [NSString stringWithString:event.eventIdentifier]; 
} 

내 응용 프로그램의 각 약속 EKEvents를 생성하고, 적합한 옵션 값을 설정하고, 이벤트 저장소에 이벤트를 저장합니다. 이것은 약 200 records.It에 대한 simultaniously iOS6에서 잘하고 있었는데, iOS7로 ipad를 업데이트하면 장치가 다시 시작됩니다. 나는 50이라는 기록을 가지고 똑같은 문제를 일으켰다.

가끔 memby 문제가 발생하고 'SpringBoard 종료에 대한 응답으로 종료'라는 메시지가 표시되는 경우가 있습니다. 추가 사용을 위해 내 데이터베이스에 입력하려면 eventIdentifier가 필요합니다. 그러나 매번이 문제가 발생하고 기기가 다시 시작됩니다.

누구든지이 문제를 해결할 수 있습니까? iOS7 이벤트 스토어의 특별한 기능은 무엇입니까? 또는이 문제를 해결할 수있는 해결책을 찾아보십시오.

감사

+0

가져 오기를 순차적으로 실행하면 작동합니까? – RyanR

+0

ARC를 해제하여 메모리 기능을 추적하는 경우 릴리스를 따라 무언가를 찾을 수 있습니다. –

+0

@RyanR - 라이언을 못 들었는데, 내 '순차적으로 수입'을 의미합니까? 위 코드 블록은 각 레코드에 대해 작동합니다. 변경 사항을 배치하고 마침내 커밋하려고했습니다. 그러나 이것은 이벤트 식별자에 접근하는 것을 허용하지 않을 것입니다. – jrodrigues

답변

0

Apple.com의 캘린더와 미리 알림 프로그래밍 가이드의 첫 번째 섹션은 답을 가지고있다.

FB 이벤트와 같이 둘 이상의 캘린더가 없으면 상점을 여러 번 할당하지 마십시오.

애플 가이드를 강력히 추천합니다. 종종 타사 도서보다 쉽습니다.

+0

스티븐 감사합니다, 내 appdelegate 방법으로 eventstore를 초기화하여 이것을 시도하고 각 레코드에 대해이 이벤트 저장소를 사용했습니다. 그러나 문제는 여전히 존재합니다. 그래서 지금은 한 번에 최대 30 개의 레코드를 캘린더에 복사하고 있습니다. 그런 다음 타이머를 설정하여 30 초 후에 다음 30 개 레코드를 복사합니다. 따라서 위의 200 개의 모든 레코드를 몇 분 안에 달력에 복사하는 작업이 완료됩니다. 이게 내 문제를 해결했습니다. 그게 올바른 방법인가요? – jrodrigues