수색…
허가 요청
앱에서 허가없이 미리 알림과 캘린더에 액세스 할 수 없습니다. 대신 사용자에게 앱에 대한 이벤트에 대한 액세스 권한을 요청하라는 경고를 표시해야합니다.
시작하려면 EventKit
프레임 워크를 가져 오십시오.
빠른
import EventKit
목표 -C
#import <EventKit/EventKit.h>
EKEventStore
만들기
그런 다음 EKEventStore
객체를 만듭니다. 캘린더 및 미리 알림 데이터에 액세스 할 수있는 개체입니다.
빠른
let eventStore = EKEventStore()
목표 -C
EKEventStore *eventStore = [[EKEventStore alloc] init];
노트
달력에 액세스해야 할 때마다
EKEventStore
객체를 만드는 것이 효율적이지 않습니다. 한 번 만들어 코드에서 사방에 사용하십시오.
가능 여부 확인
가용성에는 권한 부여 됨, 거부 됨 및 결정되지 않음의 세 가지 상태가 있습니다. 결정되지 않음은 앱이 액세스 권한을 부여해야 함을 의미합니다.
가용성을 확인하기 위해 EKEventStore
객체의 authorizationStatusForEntityType()
메소드를 사용합니다.
빠른
switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent){
case .Authorized: //...
case .Denied: //...
case .NotDetermined: //...
default: break
}
목표 -C
switch ([EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]){
case EKAuthorizationStatus.Authorized:
//...
break;
case EKAuthorizationStatus.Denied:
//...
break;
case EKAuthorizationStatus.NotDetermined:
//...
break;
default:
break;
}
허가 요청
NotDetermined
케이스에 다음 코드를 입력합니다.
빠른
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { [weak self] (userGrantedAccess, _) -> Void in
if userGrantedAccess{
//access calendar
}
}
다른 유형의 캘린더 액세스
캘린더 배열 액세스
EKCalendar
의 배열에 액세스하려면, calendarsForEntityType
메소드를 사용합니다.
빠른
let calendarsArray = eventStore.calendarsForEntityType(EKEntityType.Event) as! [EKCalendar]
캘린더 반복하기
for
루프를 사용하면됩니다.
빠른
for calendar in calendarsArray{
//...
}
캘린더 제목과 색상에 액세스하기
빠른
let calendarColor = UIColor(CGColor: calendar.CGColor)
let calendarTitle = calendar.title
목표 -C
UIColor *calendarColor = [UIColor initWithCGColor: calendar.CGColor];
NSString *calendarTitle = calendar.title;
일정 추가
이벤트 객체 만들기
빠른
var event = EKEvent(eventStore: eventStore)
목표 -C
EKEvent *event = [EKEvent initWithEventStore:eventStore];
관련 캘린더, 제목 및 날짜 설정
빠른
event.calendar = calendar
event.title = "Event Title"
event.startDate = startDate //assuming startDate is a valid NSDate object
event.endDate = endDate //assuming endDate is a valid NSDate object
캘린더에 일정 추가하기
빠른
try {
do eventStore.saveEvent(event, span: EKSpan.ThisEvent)
} catch let error as NSError {
//error
}
목표 -C
NSError *error;
BOOL *result = [eventStore saveEvent:event span:EKSpanThisEvent error:&error];
if (result == NO){
//error
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow