6

EKEventの識別子を取得しようとすると、取得するのはnil値だけです。iOS5ではEKEventはEKCalendarItemのサブクラスであるため、EKCalendarItemのUUIDを取得できる可能性があると考えましたが、それでもnilが返されます。

識別子またはUUIDプロパティにアクセスしようとすると、このエラーが発生することがあります。

CADObjectGetInlineStringProperty failed fetching uniqueID for EKPersistentEvent with error Error Domain=NSMachErrorDomain Code=268435459 "The operation couldn’t be completed. (Mach error 268435459 - (ipc/send) invalid destination port)"

私はかなり長い間この問題に悩まされてきましたが、それはiOS5ベータ関連であると考えました。しかし、現在iOS5を使用しているため、まだ機能していません。

4

7 に答える 7

8

私のアプリでは、それを取得した eventStore が解放されたときに eventIdentifier を要求すると、nil が返されることがわかりました。ただし、id を返す前に eventIdentifier を要求すると、問題ありません。次に、EKEventStore インスタンスを解放し、問題なく識別子を要求できます....ID を取得するには eventStore が必要なようですが、警告は表示されません。

于 2011-11-20T01:40:54.347 に答える
7

EKEvent の識別子を取得しようとすると、nil 値しか取得できません

識別子を取得する前に、イベントを保存してコミットしてください:

[eventStore saveEvent:event span:EKSpanThisEvent commit:YES error:&err];
NSString *strId = [[NSString alloc] initWithFormat:@"%@", event.eventIdentifier];
于 2011-11-04T13:15:32.337 に答える
2

この問題を解決するだけで、データベースにコミットする前に が null になることが判明するため、saveEvent 関数でeventIdentifierコミットが必要です。YES[self.eventStore saveEvent:event span:EKSpanThisEvent commit:YES error:&error];

その後、eventIdentifier を取得できます。

私の失敗は commit: パラメータに NO を渡したものです。

于 2014-02-28T18:33:02.317 に答える
2

eventIdentifier は、イベントが EKEventStore に追加されるときに設定されます。追加する前にこの値にアクセスしようとすると、null が返されます。

于 2012-03-22T15:02:58.030 に答える