Objective C - 日历如何向活动添加文件附件?

Objective C - How does Calendar adds file attachments to events?

在 OS X(在 10.8 及更高版本中测试)中,可以通过拖放的方式在已创建或正在创建的事件中添加文件附件(如电子邮件或 PDF 文件) - 将其放入事件中(编辑:或通过选择添加 attachment/file 事件)。

一个similar question was asked in 2013. According to the Mac Developer LibaryEKCalendarItemEKEvent中没有地方可以存放文件。尽管如此,苹果还是做到了。

日历应用程序是否以某种方式使用 notes 属性 来存储此类文件?还是将文件上传到 iCloud,然后 link 将事件中的文件上传到 iCloud?

您的问题没有单一的答案。这取决于服务器(Fruux、iCloud、Exchange、Yahoo 等)、客户端版本等

对此有一个简单的答案:我可以使用 EventKit API 附加文件吗?不,你不能。 EventKit 的功能非常有限。 'notes' 属性 映射到(第一个还是最后一个?...)iCalendar description 属性.

对于 iCloud 和 OSX 服务器,OSX/iOS 客户端应该做 CalDAV managed attachments. For servers not supporting this, the client might inline the attachments in iCalendar attachments。但如果我没记错的话,在某些情况下,客户端会将附件保存在本地并通过文件引用它:URL in the ATTACH 属性.

总结:如果你想将文件附加到 iCloud(或其他 CalDAV 服务器),你需要实现一个 CalDAV client.