问题标签 [ekeventstore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 应用程序在后台时不触发 EKEventStore 更改通知
我已使用以下方式注册日历更改通知:
当对本地日历进行更改时,这应该调用以下命令:
但是......当我启动应用程序,然后将其发送到后台以便我可以更改日历条目时,当我更改日历条目时没有任何反应。当我返回应用程序时它会触发。但是,这当然不是目标。
store 在头文件中定义:
更新...忘记显示我在后台获取的东西。
这是在 didFinishLaunchingWithOptions
这是在应用程序委托中:
performFetch 在看似随机的时间被调用,一些与日历完全无关。有没有办法找出触发后台获取的原因?它总是日历吗?实际执行被注释掉了——对吗?
我错过了什么?
icalendar - 在 iOS 中显示日历事件详细信息
我正在使用下面的代码来获取日历事件并记录它的详细信息。当我尝试记录当前时间、开始日期和结束日期时,它会显示大约 5 小时前的时间。我没有得到它背后的原因是什么?
我在 7 月 30 日晚上 8 点到晚上 9 点设置了一个活动。
我的代码:
但是当我运行上面的代码时,我得到了以下输出。
2014-07-29 14:13:57.979 iCalEvents[806:60b] currentTime 2014-07-29 08:43:57 +0000 2014-07-29 14:13:57.980 iCalEvents[806:60b] 小时 14 2014-07 -29 14:13:57.980 iCalEvents[806:60b] 分钟 13 2014-07-29 14:13:57.981 iCalEvents[806:60b] startDate 2014-07-29 08:43:57 +0000 2014-07-29 14 :13:57.990 iCalEvents[806:60b] 事件 ("EKEvent <0x95485c0>\n{\n\t EKEvent <0x95485c0>\n{\t 标题 = \t\tMyEvent; \n\t 位置 = \t(null ); \n\t 日历 = \tEKCalendar <0x9458b90> {title = Calendar; type = Local; allowedModify = YES; color = #1BADF8;}; \n\t 警报 = \t\t(null); \n\ t URL = \t\t\t(null); \n\t lastModified = 2014-07-29 08:38:32 +0000; \n\t timeZone = \tAsia/Kolkata (GMT+5:30) 偏移19800 \n}; \n\t 位置 = \t(null); \n\t开始日期= \t2014-07-30 14:30:00 +0000 ; \n\t结束日期= \t\t 2014-07-30 15:30:00 +0000 ; \n\t allDay = \t\t0; \n\t 浮动 = \t0; \n\t 重复 = \t(null); \n\t 参加者 = \t(null) \n};" ) 2014-07-29 14:13:57.990 iCalEvents[806:60b] 标题 (MyEvent) 2014-07-29 14:13:57.991 iCalEvents[806 :60b] 位置 ("") 2014-07-29 14:13:57.991 iCalEvents[806:60b] timeZone ("Asia/Kolkata (GMT+5:30) offset 19800") 2014-07-29 14:13: 57.992 iCalEvents[806:60b] startDate ( "2014-07-30 14:30:00 +0000" ) 2014-07-29 14:13:57.992 iCalEvents[806:60b] endDate ( "2014-07-30 15: 30:00 +0000" )
objective-c - NSPredicate 仅获取今天的事件
我正在使用EventKit.framework来获取存储在EKEventStore
.
我怎样才能只获得今天的事件,即从早上00:00到晚上 11:59(00:00 到 23:59)。时区可能是任何东西。
我正在使用下面的代码,但它也在提供第二天的事件。它比今天的日期增加了 24 小时。
如何更改NSPredicate
以上要求?
ios7 - 获取标题、位置、时区、开始日期和结束日期值
如何从 NSMutableArray 的事件中访问位置值。当我尝试使用 NSLog(@"Event Title:%@", [[events objectAtIndex:i] location]); 时,编译器抛出多个名为 'location' 的方法,发现结果、参数类型或属性不匹配。如何从此事件中获取位置值。
事件(“EKEvent <0x94a9360>\n{\n\t EKEvent <0x94a9360>\n{\t 标题 = \t\tSdsdfsd;\n\t位置= \t(null);\n\t 日历 = \tEKCalendar <0x9497b90> {title = 日历;type = Local;allowsModify = YES;color = #1BADF8;};\n\t 警报 = \t\t(null);\n\t URL = \t\t\t( null); \n\t lastModified = 2014-07-31 13:35:52 +0000; \n\t timeZone = \tAsia/Kolkata (GMT+5:30) offset 19800 \n}; \n\t location = \t(null); \n\t startDate = \t2014-08-01 13:30:00 +0000; \n\t endDate = \t\t2014-08-01 14:30:00 +0000; \ n\t allDay = \t\t0; \n\t 浮动 = \t0; \n\t 重复 = \t(null); \n\t 参加者 = \t(null) \n};" )
ios - 使用 Swift 语法获取提醒
我正在尝试从 EventKit 异步获取提醒(EKEntityTypeReminder)。我如何在 Swift 中写这个?
…仍在努力适应新的块/闭包语法
swift - 获取新事件的默认日历时出错 - Swift
我在使用 Swift 时尝试在 iOS 的日历应用程序上创建新事件时遇到了问题。
这是我到目前为止所拥有的:
这是我得到的错误:
我检查了我的语法,我很确定我做对了,所以任何人都可以帮我弄清楚我哪里出错了吗?
附加信息
- iOS 8 测试版 5
- Xcode 6 测试版 5
- 带 Retina 显示屏的 iPad Mini(真实设备)上出现问题
更新
更改EKEntityTypeReminder
为EKEntityTypeEvent
(对不起,我的错误)实际上不会产生错误,但现在该事件甚至没有出现在日历中。我检查了 和 的输出,granted
我分别err
看到了false
和nil
。
ios - Any chance to write unit tests against EKEventStore?
We are implementing "Sync to Calendar" functionality within our application. Our synchronization process involves events that we obtain from server-side that we want to replicate to iPhone calendar. Currently I am not sure if the method that we wrote for this synchronization addresses all possible scenarios we expect to have this is why I want to unit test it. It contains numerous calls to EKEventStore which, as Apple documentation states, needs to be called with requestAccessToEntityType:completion:
first:
On iOS 6 and later, you must request access to an entity type after the event store is initialized with requestAccessToEntityType:completion: for data to return.
...which will be difficult to handle within environment in which our unit tests are run.
Currently I am thinking about implementing mock subclass of EKEventStore with some NSArray of EKEvent objects behind it.
Is there are any possibility to unit test against EKEventStore without writing such mock subclass which would mimic all the methods we use from inside our synchronization routine?
ios - 关于 requestAccessToEntityType 何时调用 applicationDidBecomeActive?
我刚刚遇到了一个我认为我会分享的问题。在我的 iOS 日历使用中,我在应用程序委托中使用 applicationDidBecomeActive 来检查用户日历设置是否已更改。具体来说,在获得 applicationDidBecomeActive 回调后,我执行以下操作:
但是,我遇到了一个问题。(多么令人惊讶!:))。我发现当我们最初执行 requestAccessToEntityType 时也会调用 applicationDidBecomeActive。也就是说,在 Apple 向用户显示他们的“警报”以询问用户是否希望我们的应用访问他们的日历之后,我们的应用会收到一个 applicationDidBecomeActive 回调。我现在唯一剩下的问题是:
当 requestAccessToEntityType 被调用时,我们总是在requestAccessToEntityType 的完成处理程序被调用之前得到 applicationDidBecomeActive 吗?
我假设这是真的。如果在调用应用程序委托 applicationDidBecomeActive 方法之前调用了我的一个方法(在应用程序委托之外),这对我来说似乎很不寻常。
ios - EKEventStore 删除事件抛出错误
我创建了一个EKEventStore
,确保我可以访问,创建一个事件并将其持久化。我省了eventIdentifier
,一切都很好。这是一个经常性的日历条目。
接下来,我想从重复事件中删除几天。您可能每周五都有一次定期会议,但本周五是一年一度的丁果莓节,因此会议被取消。
我removeEvent:span:commit:error:
按预期使用和所有工作。
然后我决定完全从日历中删除该事件。我打电话[self.store removeEvent:event span:EKSpanFutureEvents commit:YES error:&error];
,我把一些错误/垃圾扔进控制台。
Error loading date date from daemon: Error Domain=EKCADErrorDomain Code=1010 "The operation couldn’t be completed. (EKCADErrorDomain error 1010.)"
仅当我在重复事件的范围内删除特定日期并且对于事件EKEventStore
中的每个缺失日期都喷出此行一次时,才会发生这种情况。结果是,如果我取消了半打事件,中间有六天的时间,我会收到大量的这些消息。
它似乎不会影响我的代码的功能甚至性能,但我讨厌看到这样的东西涌入控制台,所以我希望有人能帮助我找到一种合理的方法来防止它。
objective-c - XCode iOS8 从带有 CalDAV 积分的代码创建 EKCalendar
是否可以使用CalDAV 凭据(服务器、用户名、密码...)直接从代码创建EKCalendar ?
就像是:
还是之前从“设置”中配置 CalDAV 的唯一方法?
谢谢