首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提取iOS日历中的假期?

如何提取iOS日历中的假期?
EN

Stack Overflow用户
提问于 2016-04-13 17:14:27
回答 2查看 2.2K关注 0票数 1

如何从iOS日历中提取假期?

我希望能够从日历中读取事件,并在我自己的日历程序中使用它们。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-13 17:34:46

尝尝这个

代码语言:javascript
复制
// 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];
票数 2
EN

Stack Overflow用户

发布于 2017-01-04 19:41:56

Swift 3.0版

获取用户权限

代码语言:javascript
复制
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)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36605264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档