标签: ekevent

为什么eventsMatchingPredicate返回nil?

这是我的代码:

NSString * calID = [[NSUserDefaults standardUserDefaults] objectForKey:@"calendarIdentifier"];
EKCalendar *cal = [eventStore calendarWithIdentifier:calID];

// If calendar exists
if(cal)
{
    // Retrieve all existing events until today
    NSPredicate *predicate = [eventStore predicateForEventsWithStartDate:[NSDate distantPast] endDate:[NSDate date] calendars:@[cal]];
    self.events = [eventStore eventsMatchingPredicate:predicate];

    if(self.events==nil)
        NSLog(@"nil events!");
 }
Run Code Online (Sandbox Code Playgroud)

calendarItentifier是我在程序中创建日历时存储的变量,因此不是我在错误的日历上添加事件的情况.

但是,代码无法检索日历上的过去事件,它只返回nil到self.events.但我DID在日历上添加事件.有什么能告诉我代码是否有问题?

cocoa-touch ios ekevent

4
推荐指数
1
解决办法
1320
查看次数

如何自定义EKEventView显示的EKEventEditView的颜色?

背景:

问题:

  • 我的问题是如何自定义EKEventEditView的颜色,其中视图不是由我的代码触发的,而是由EKEventView中的Apple代码触发的.

与API的链接:

iphone ios ekevent ekeventkit

3
推荐指数
1
解决办法
709
查看次数

如何检测更改了哪个EKevent

我遇到了问题.我需要知道我的EventStore中的事件何时被更改,所以对于这种情况我使用EKEventStoreChangedNotification但是这个通知返回给我难以理解的字典,userInfo 它看起来像这样:

EKEventStoreChangedObjectIDsUserInfoKey = ("x-apple-eventkit:///Event/p429" );
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用此数据来访问已更改的对象.请帮我

ios ekevent ekeventkit ekeventstore

3
推荐指数
1
解决办法
2256
查看次数

iOS 10及更高版本中的EKEventStore requestAccessToEntityType崩溃应用程序

我有应用程序,我必须在默认日历中添加事件,直到iOS 10正常.现在在iOS 10中它不授予访问权限.我已经开始use legacy swift language versionyes.我的代码是

let eventStore = EKEventStore()
switch EKEventStore.authorizationStatusForEntityType(EKEntityType.Event) {
   case .Authorized:
            //access
   case .Denied:
            print("Access denied")
   case .NotDetermined:
       eventStore.requestAccessToEntityType(EKEntityType.Event, completion:
                {[weak self] (granted: Bool, error: NSError?) -> Void in
                    if granted {
                        //access
                    } else {
                        print("Access denied")
                    }
                })
   default:
            print("Case Default")
  }
Run Code Online (Sandbox Code Playgroud)

调试我的应用程序eventStore.requestAccessToEntityType在Xcode 8中崩溃.

调试截图

我的应用程序是实时的,我需要解决它.任何帮助都是适当的.提前致谢.

calendar ios ekevent ekeventstore swift

3
推荐指数
1
解决办法
1802
查看次数

EventKit错误在首次加载时获取会议iOS 11.2.2

首次获取数据时,EventKit显示错误。

[EventKit]获取所有日历时出错:域= EKCADErrorDomain代码= 1019错误(“空)” 2018-01-17 19:19:22.190518 + 0530 StickyNoteApp [426:40382] [EventKit]为新事件获取默认日历时出错:错误Domain = EKCADErrorDomain代码= 1019“(空)” 2018-01-17 19:19:22.190556 + 0530 StickyNoteApp [426:40382] [EventKit]未提供对象ID。不会发现对象是否存在。视图将出现

[EventKit] CADDatabaseFetchCalendarItemsWithPredicate尝试的响应块中的错误(1019)1/3 2018-01-17 19:24:54.942170 + 0530 StickyNoteApp [426:40382] CADDatabaseFetchCalendarItemsWithPredicate尝试的响应块中的错误(1019) 2018-01-17 19:24:54.942572 + 0530 StickyNoteApp [426:40382] [EventKit] CADDatabaseFetchCalendarItemsWithPredicate尝试的答复块中出现错误(1019)3/3 2018-01-17 19:24:54.942588 + 0530 StickyNoteApp [426: 40382] [EventKit] CADDatabaseFetchCalendarItemsWithPredicate的所有重试已用尽2018-01-17 19:19:22.242094 + 0530

authorization ios eventkit ekevent

3
推荐指数
1
解决办法
907
查看次数

predicateForEventsWithStartDate不起作用

我正在尝试从日历中获取事件,而我正在使用此方法执行此操作:

predicateForEventsWithStartDate:endDate:calendars:
Run Code Online (Sandbox Code Playgroud)

但如果我创建这样的开始日期:

NSString *str =@"3/15/1980 9:15 PM";
    NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
    [formatter setDateFormat:@"MM/dd/yyyy hh:mm a"];
    NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
    [formatter setTimeZone:gmt];
    NSDate *date = [formatter dateFromString:str];
Run Code Online (Sandbox Code Playgroud)

然后我这样做:

predicate = [eventStore predicateForEventsWithStartDate:date endDate:endDate calendars:  [eventStore calendarsForEntityType:EKEntityTypeEvent]];

NSArray *eventArray = [eventStore eventsMatchingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

eventArray是零,相反,如果我使用:

[NSDate date]
Run Code Online (Sandbox Code Playgroud)

找到我从今天到未来的事件,而不是旧日期不起作用,我也试过其他旧日期,但阵列总是零...

iphone ios ekevent ekeventstore

2
推荐指数
1
解决办法
524
查看次数

设置allday时EKEvent错误的日期

如果今天是5月6日星期二下午2点

event.startDate = [[NSDate alloc] init];
event.allDay = YES;
[dateFormat setDateFormat:EEEE, MMMM dd, yyyy];
NSString* dayStr = [dateFormat stringFromDate:event.startDate];
timeDetails.text = [NSString stringWithFormat:@"%@\nAll day", dayStr];
Run Code Online (Sandbox Code Playgroud)

结果于5月5日星期一

没有allDay设置的相同代码

event.startDate = [[NSDate alloc] init];
[dateFormat setDateFormat:EEEE, MMMM dd, yyyy];
NSString* dayStr = [dateFormat stringFromDate:event.startDate];
timeDetails.text = [NSString stringWithFormat:@"%@\nAll day", dayStr];
Run Code Online (Sandbox Code Playgroud)

结果在5月6日星期二这是正确的.有人有任何线索吗?

weekday ekevent

2
推荐指数
1
解决办法
915
查看次数

从Calendar事件(EKCalendarItem/EKEvent)中检索位置lat/long(CLLocationCoordinate2d)

EKCalendarItem有属性"位置",但它是一个NSString.新的iOS8功能显示了一个很好的事件地图,所以必须CLLocationCoordinate2D附加一个EKCalendarItem,正确的?我在哪里可以找到这个CLLocationCoordinate2D

location calendar ekevent cllocationcoordinate2d ios8

2
推荐指数
1
解决办法
1268
查看次数

如何向EKEvent添加一些其他字段

一种解决方案可能是:

创建一个新模型EKEventExt并在它们之间添加一对一关系,我不确定它是否可行,因为EKEventExt它存储在我的一个sqlite中,EKEvent并且存储在事件存储中。

objective-c ios ekevent ekeventkit ekeventstore

2
推荐指数
1
解决办法
566
查看次数

如何在ios日历的EKEvent中设置特定的闹钟?

在 EKEvent 中,一旦我没有为事件设置任何警报,我就会在日历应用程序中查看它,它会在 5 分钟前向我显示警报。为什么 ?我不明白。

我的要求

  • 我想在给定特定时间之前设置两个警报,1 个警报,例如“5 分钟、15 分钟、30 分钟、1 小时”。需要在事件时间设置2秒警报。

  • 在搜索如何在事件中添加警报的基础上,我为添加事件做了一些事情,但它不起作用。很多尝试但在日历中没有效果。

  • 请参阅下面的代码,我根据我的要求尝试了两种方式,我使用开关盒,甚至尝试添加单个警报。两者都不起作用。

我该怎么办?

提出任何建议、解决方案、想法

谢谢

       let event:EKEvent = EKEvent(eventStore: appleEventStore)

        event.title = tempDescription
        event.startDate = startDate as Date
        event.endDate = endDate as Date
        event.isAllDay = false
        event.notes = "This is a note"
        event.calendar = cal
        do {
            try appleEventStore.save(event, span: .thisEvent)
            print("events added with dates:")

            let alarm = EKAlarm(relativeOffset: 600)
            event.addAlarm(alarm)

            switch tempalertid {

            case "1":
                let aInterval: TimeInterval = -5 * 60 …
Run Code Online (Sandbox Code Playgroud)

icalendar alarm ios ekevent swift

2
推荐指数
1
解决办法
3733
查看次数