2011-10-20 58 views
3

時,我有以下代碼:錯誤使用EKEventEditViewController

EKEventEditViewController *addController = [[EKEventEditViewController alloc] initWithNibName:nil bundle:nil]; 

EKEvent * event = [EKEvent eventWithEventStore:eventStore]; 

event.startDate = startDate; 

event.endDate = endDate; 

addController.eventStore = self.eventStore; 

addController.event = event; 

addController.editViewDelegate = self; 

[self presentModalViewController:addController animated:YES]; 
[addController release]; 

它告訴我的屏幕像iCal中添加事件,但是當我按「完成」按鈕添加事件中,我得到了一個警告「這一事件確實不屬於那個活動商店「。並在控制檯日誌中獲得"Calendar: unable to save: Error Domain=EKErrorDomain Code=11 "該事件不屬於該事件存儲。 " UserInfo=0xfecb150 {NSLocalizedDescription=That event does not belong to that event store.}",但這隻發生在iOS 5中,與4確定。任何人都可以幫助我:)

回答

0

我有幾乎相同的問題。如果我嘗試保存具有starttime = endtime的事件,那麼我將初始化出現錯誤「未設置結束日期」。如果我然後設置不同的結束時間,我會得到「該事件不屬於該事件存儲區」。

我在調試器中注意到,通常當您取消事件時,細節仍然存在於EKEventEditController.event中。但是,如果您在「未設置結束日期」錯誤後取消該事件,則該事件僅包含開始時間和結束時間。標題已被刪除。我的理論是,對eventStore的引用也被剔除,這是觸發第二個錯誤的原因。

我打斷了「沒有結束日期錯誤」,但在取消並檢查控制器的事件之前確定的代碼 - 但都看起來沒問題,這意味着我的理論不可能是完全正確的。斷開eventstore和事件的出現這個錯誤之間出現。

我也只能在iOS搞定這個問題5.我的iOS 4.2的設備是好的。

+0

我提交的bug了蘋果公司,它被標記爲: 重複的16474709(開) 是任何人都知道這個票號就知道好? –

+0

我還在OpenRadar上插入了這個bug: http://openradar.appspot.com/18794075 –

4

我獲得相同的行爲,通過@Airsource描述有限公司在his answer

...如果我嘗試保存具有starttime == endtime的事件,那麼我會初始化出現錯誤「未設置結束日期」。如果我然後設置不同的結束時間,我會得到「該事件不屬於該事件存儲區」。

然而,這似乎只發生,如果事件對startDateendDate初始值完全相等。

這似乎是一個iOS 5的錯誤。我的解決方法:使事件的初始startDateendDate總會有所不同,例如,第二:

if ([event.endDate isEqualToDate:event.startDate]) { 
    event.endDate = [event.startDate dateByAddingTimeInterval:1.0]; // add one second 
    }