0
這段代碼旨在在Mac上的iCal中打印我的默認日曆,但返回(null)。我是否需要更改代碼或設置中的某些內容才能訪問我的日曆?我在Xcode 4.5.2中運行這個。在Mac上訪問日曆Objective-C程序
#import <Foundation/Foundation.h>
#import <EventKit/EventKit.h>
int main(int argc, const char * argv[])
{
EKEventStore *store = [[EKEventStore alloc] initWithAccessToEntityTypes:EKEntityMaskEvent];
NSLog(@"%@",[store defaultCalendarForNewEvents].calendarIdentifier);
return 0;
}
感謝您的建議。我在10.7.5,我認爲這可能是問題,但我不確定你在哪裏找到了允許日曆數據訪問的複選框。這是Xcode中的一個設置嗎? – ripperbone
是的,它是沙箱權利文件中的「com.apple.security.personal-information.calendars」設置。您可以通過轉到目標配置的摘要選項卡來配置沙盒。 [App Sandbox設計指南:快速入門](http://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxQuickStart/AppSandboxQuickStart.html#//apple_ref/doc/uid/TP40011183-CH2 -SW3)可能會有所幫助。 –
我創建了一個新的Cocoa應用程序(我一直選擇Command Line Tool)時發現了沙箱選項。我確信沙箱模式未被檢查,但仍然沒有運氣。我不認爲應該要求代碼簽名來訪問日曆數據,對吧?我在Xcode中沒有遇到任何錯誤,但是我在控制檯中發現了一條有趣的消息:1/23/13 12:33:50.309上午getEvents:(null) 1/23/13 12:33:50.312 AM com.apple.debugserver- 194:2 +0.172950秒[11f5/1a03]:error::: read(1,0x10a3c9a60,1024)=> -1 err =錯誤的文件描述符(0x00000009) – ripperbone