2013-01-22 5 views
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; 
} 

답변

0

나를 위해 위의 코드는 기본 달력의 식별자를 올바르게 반환합니다 (10.8.2에서).

응용 프로그램에 샌드 박스가 있습니까? 결과는 샌드 박스 동안 일정 액세스를 허용하지 않는 경우 (null) 될 것입니다 :

enter image description here

잘 모르겠어요이 모든 가능한 경우 만 선택 기본 달력이있는 경우도 확인합니다. (나는 하나를 선택했고 Calendar.app에서 아무 것도 선택하지 않을 수 없었다).

+0

의견을 보내 주셔서 감사합니다. 10.7.5에 있는데 문제가 될 수 있다고 생각하지만 캘린더 데이터 액세스를 허용하는 확인란을 어디에서 찾을 수 있는지 잘 모르겠습니다. 이것은 어딘가에있는 Xcode의 설정입니까? – ripperbone

+0

예, sandbox 인 타이틀먼트 파일의'com.apple.security.personal-information.calendars' 설정입니다. 대상 구성의 요약 탭으로 이동하여 샌드 박스를 구성 할 수 있습니다. [App Sandbox Design Guide : 빠른 시작] (http://developer.apple.com/library/mac/documentation/Security/Conceptual/AppSandboxDesignGuide/AppSandboxQuickStart/AppSandboxQuickStart.html#//apple_ref/doc/uid/TP40011183-CH2 -SW3) 도움이 될 수도 있습니다. –

+0

커맨드 라인 도구를 선택했을 때 새로운 코코아 애플리케이션을 만들 때 샌드 박스 옵션을 발견했습니다. 나는 샌드 박스 모드가 확인되지 않았지만 여전히 운이 없음을 확인했다. 캘린더 데이터에 액세스하려면 코드 서명을해야한다고 생각하지 않습니까? Xcode에서 오류가 발생하지 않았지만 콘솔에서 흥미로운 메시지를 찾았습니다. 1/23/13 12 : 33 : 50.309 AM getEvents : (null) 1/23/13 12 : 33 : 50.312 AM com.apple.debugserver- 194 : 2 +0.172950 sec : 오류 : :: read (1, 0x10a3c9a60, 1024) => -1 err = 파일 설명자가 잘못되었습니다 (0x00000009) – ripperbone