如何从iOS日历中提取假期?
我希望能够从日历中读取事件,并在我自己的日历程序中使用它们。
发布于 2016-04-13 17:34:46
尝尝这个
// Get the appropriate calendar
NSCalendar *calendar = [NSCalendar currentCalendar];
// Create the start date components
NSDateComponents *oneDayAgoComponents = [[NSDateComponents alloc] init];
oneDayAgoComponents.day = -1;
NSDate *oneDayAgo = [calendar dateByAddingComponents:oneDayAgoComponents
toDate:[NSDate date]
options:0];
// Create the end date components
NSDateComponents *oneYearFromNowComponents = [[NSDateComponents alloc] init];
oneYearFromNowComponents.year = 1;
NSDate *oneYearFromNow = [calendar dateByAddingComponents:oneYearFromNowComponents
toDate:[NSDate date]
options:0];
// Create the predicate from the event store's instance method
NSPredicate *predicate = [store predicateForEventsWithStartDate:oneDayAgo
endDate:oneYearFromNow
calendars:nil];
// Fetch all events that match the predicate
NSArray *events = [store eventsMatchingPredicate:predicate];发布于 2017-01-04 19:41:56
Swift 3.0版
获取用户权限
func requestAccessToCalendar() {
eventStore.requestAccess(to: EKEntityType.event, completion: {
(accessGranted: Bool, error: Error?) in
if accessGranted == true {
DispatchQueue.main.async(execute: {
getALLEvents
})
} else {
}
})
}
func getALLEvents(){
let caledar = NSCalendar.current
let oneDayAgoComponents = NSDateComponents.init()
oneDayAgoComponents.day = -1
let oneDayAgo = caledar.date(byAdding: oneDayAgoComponents as DateComponents, to: Date(), wrappingComponents: true)
let oneYearFromNowComponents = NSDateComponents.init()
oneYearFromNowComponents.year = 1
let oneYearFromNow = caledar.date(byAdding: oneYearFromNowComponents as DateComponents, to: Date(), wrappingComponents: true)
let store = EKEventStore.init()
let predicate = store.predicateForEvents(withStart: oneDayAgo!, end: oneYearFromNow!, calendars: nil)
let event = store.events(matching: predicate)
}https://stackoverflow.com/questions/36605264
复制相似问题