खोज…
अनुमति का अनुरोध
आपका ऐप बिना अनुमति के आपके अनुस्मारक और आपके कैलेंडर तक नहीं पहुंच सकता है। इसके बजाय, उसे उपयोगकर्ता को ऐप के लिए घटनाओं तक पहुंच प्रदान करने का अनुरोध करते हुए उसे अलर्ट दिखाना होगा।
आरंभ करने के लिए, EventKit
ढांचे को आयात करें:
तीव्र
import EventKit
उद्देश्य सी
#import <EventKit/EventKit.h>
एक EKEventStore
बनाना
फिर, हम एक EKEventStore
ऑब्जेक्ट बनाते हैं। यह वह वस्तु है जिससे हम कैलेंडर और अनुस्मारक डेटा तक पहुंच सकते हैं:
तीव्र
let eventStore = EKEventStore()
उद्देश्य सी
EKEventStore *eventStore = [[EKEventStore alloc] init];
ध्यान दें
हर बार कैलेंडर एक्सेस करने के लिए हमें एक
EKEventStore
ऑब्जेक्ट बनाना कुशल नहीं है। एक बार इसे बनाने की कोशिश करें और अपने कोड में हर जगह इसका इस्तेमाल करें।
उपलब्धता की जाँच
उपलब्धता की तीन अलग-अलग स्थिति है: अधिकृत, अस्वीकृत और निर्धारित नहीं। निर्धारित नहीं होता है मतलब है कि ऐप को एक्सेस देने की जरूरत है।
उपलब्धता की जांच करने के लिए, हम EKEventStore
ऑब्जेक्ट की authorizationStatusForEntityType()
विधि का उपयोग करते हैं।
तीव्र
switch EKEventStore.authorizationStatusForEntityType(EKEntityTypeEvent){
case .Authorized: //...
case .Denied: //...
case .NotDetermined: //...
default: break
}
उद्देश्य सी
switch ([EKEventStore authorizationStatusForEntityType:EKEntityTypeEvent]){
case EKAuthorizationStatus.Authorized:
//...
break;
case EKAuthorizationStatus.Denied:
//...
break;
case EKAuthorizationStatus.NotDetermined:
//...
break;
default:
break;
}
अनुमति का अनुरोध
निम्नलिखित कोड को NotDetermined
मामले में NotDetermined
:
तीव्र
eventStore.requestAccessToEntityType(EKEntityTypeEvent, completion: { [weak self] (userGrantedAccess, _) -> Void in
if userGrantedAccess{
//access calendar
}
}
विभिन्न प्रकार के कैलेंडर तक पहुंचना
कैलेंडर की सरणी तक पहुँचना
EKCalendar
के सरणी तक पहुँचने के लिए, हम calendarsForEntityType
विधि का उपयोग करते हैं:
तीव्र
let calendarsArray = eventStore.calendarsForEntityType(EKEntityType.Event) as! [EKCalendar]
कैलेंडर के माध्यम से Iterating
बस लूप के for
एक सरल का उपयोग करें:
तीव्र
for calendar in calendarsArray{
//...
}
कैलेंडर शीर्षक और रंग तक पहुँचना
तीव्र
let calendarColor = UIColor(CGColor: calendar.CGColor)
let calendarTitle = calendar.title
उद्देश्य सी
UIColor *calendarColor = [UIColor initWithCGColor: calendar.CGColor];
NSString *calendarTitle = calendar.title;
एक घटना जोड़ना
ईवेंट ऑब्जेक्ट बनाना
तीव्र
var event = EKEvent(eventStore: eventStore)
उद्देश्य सी
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
}
उद्देश्य सी
NSError *error;
BOOL *result = [eventStore saveEvent:event span:EKSpanThisEvent error:&error];
if (result == NO){
//error
}