コンパイルするためだけにこのコードを以下に記述しましたが、10.8 の展開ターゲットが必要なため、これは機能しません。
何が起こっているのか EKEventStore にアクセスする必要があるため、誰かがこのアプリをダウンロードすると、10.8 で正常に動作しますが、アプリにはカレンダーへのプライバシー許可がないため、10.9 でダウンロードするとエラーが発生します。これは 10.8 用にコンパイルされているため、メソッド requestAccessToEntityType:EKEntityTypeEvent. にアクセスできません。
これを行うにはどうすればよいですか?
関連するメモとして、10.9 用のコードと 10.8 用の他のコードをコンパイルし、環境に応じてこれらの異なる部分を呼び出すにはどうすればよいですか? これは Mac App Store 用であることを覚えておいてください。もしそうするのであれば、例として説明してください。これをどのように開始すればよいかわからない人と話しているかのように。
//------------------check authorization of calendars--------------
#if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1090) || (__IPHONE_OS_VERSION_MIN_REQUIRED)
if(!eventStore) eventStore = [[EKEventStore alloc] init];
[eventStore requestAccessToEntityType:EKEntityTypeEvent completion:^(BOOL granted, NSError *error) //.............put this back in...
{
if (granted)
{
NSLog(@"granted permission to eventstore!");
authorizedEventStore = YES;
authorizedCalendar();
}
else
{
NSLog(@"Not granted");
authorizedEventStore = NO;
notAuthorized();
}
}];
#else
NSLog(@"not able to request");
if(!eventStore) eventStore = [[EKEventStore alloc] initWithAccessToEntityTypes:EKEntityMaskEvent];
authorizedEventStore = YES;
authorizedCalendar();
#endif
//------------------end check authorization of calendars--------------