0

アプリを介してイベントを追加しているときに、EKEventEditViewController に関する問題があります。初めてアプリをインストールすると、イベントを追加できず、カレンダーイベントが設定されていないという問題が発生し、「Error Domain=EKErrorDomain Code=1」が発生します。アプリが異なるバンドル識別子で初めて開かれたときにのみ発生します。次回アプリをインストールしてイベントを追加すると、完全に機能します。イベントを追加する前に、 requestAccessToEntityType:completion: の条件も確認しました。私はこの時点で立ち往生しており、グーグルで見つけたすべての方法を試しました。

-前もって感謝します。

4

1 に答える 1

0

初めてアプリがパーミッションを要求するとき、プロンプトはアプリをブロックせず、イベントを追加する適切な方法は完了ブロック内にあります

一例を次に示します。

EKEventStore *eventStore = [[EKEventStore alloc] init];
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) {
    dispatch_async(dispatch_get_main_queue(), ^{
        // Event creation code HERE!!! (for the first run only) this block will not be executed for the next runs
    });
}];

ほとんどの場合、イベント作成コードはrequestAccessToEntityType関数の後にあり、完了ブロック内にはありません。

完了ブロックが実行されたときにのみアクセスが許可されるため、初めてイベントを作成することはできません。

そして、次の実行のアクセスを許可すると、アクセスが許可され、すべてが期待どおりに機能します。

于 2013-11-07T12:10:48.623 に答える