我已經編寫了下面的代碼只是爲了讓它編譯,但這不會工作,因爲我需要有一個10.8的部署目標。小牛,SandBoxed,但使用EKEventStore和日曆訪問到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--------------
嗯,我曾在之前,當我來回切換到10.8的baseSDK,它不會編譯和顯示錯誤。沒有可見的EKEventStore接口聲明選擇器等......我明顯錯誤地認爲,如果我使用10.9的baseSDK,並且應用程序在10.8中運行,它也會看到類似的崩潰或錯誤。但我明白現在發生了什麼,謝謝。 – hokkuk