在日出之类的EventKit中修改EKParticipant(参与者)

rebello95

我的目标是将一些受邀者添加到EKEvent我看着这样的其他问题,如这一个,但都不能不说是根本不可能添加EKParticipants到一个EKEvent程序。我确实看到该attendees属性为只读,但是我看到其他服务(例如Sunrise)在其移动应用中使用了该属性

我有信心他们正在使用至少与EventKit进行部分集成的某些系统,因为他们正在从用户的iCal应用中提取日历。例如,从添加的Exchange帐户发送的邀请,也显然由Exchange服务发送,而不是Sunrise自己的邀请(将事件直接发布到Exchange或将事件发布到iCal的结果)。

此限制的任何解决方法都将非常有用-也许可以调用Exchange上的终结点来添加/删除受邀者?EventKit内部的解决方法?只要它不是私有的Apple API,我都会非常乐于尝试。

谢谢!

rebello95

我想到了!

本质上,必须进入EKAttendee继承自EKParticipant我是通过使用该NSClassFromString()方法创建该类的泛型实例来实现的

拥有与会者后,您可以使用setValue:ForKey:函数设置属性

最后,将您的EKAttendee实例编译成一个数组,并将其设置为EKEventattendees属性。

我使用我的设备上的Exchange帐户对此进行了测试,它的工作原理非常有趣-邀请发送成功!

下面的代码是我现在用来设置事件参与者的代码。我的示例是创建新事件,但是对于现有事件,只需在上复制attendees列表EKEvent,然后对其进行修改并重新设置即可非常简单地完成

//Create generic event info
EKEvent *event = [EKEvent eventWithEventStore:database];
event.title = @"TEST EVENT";
event.location = @"Test location";
event.notes = @"Example notes";
event.startDate = [NSDate date];
event.endDate = [[NSDate date] dateByAddingTimeInterval:(60 * 60)];
event.calendar = exchange;

//Do our super clever hack
NSMutableArray *attendees = [NSMutableArray new];
for (int i = 0; i < 5; i++) {

    //Initialize a EKAttendee object, which is not accessible and inherits from EKParticipant
    Class className = NSClassFromString(@"EKAttendee");
    id attendee = [className new];

    //Set the properties of this attendee using setValue:forKey:
    [attendee setValue:@"Invitee" forKey:@"firstName"];
    [attendee setValue:[NSString stringWithFormat:@"#%i", i + 1] forKey:@"lastName"];
    [attendee setValue:@"[email protected]" forKey:@"emailAddress"];

    //Add this attendee to a list so we can assign it to the event
    [attendees addObject:attendee];
}

//Finally, add the invitees to the event
[event setValue:attendees forKey:@"attendees"];

//Save the event!
NSError *error = nil;
[database saveEvent:event span:EKSpanThisEvent error:&error];
if (error) {
    NSLog(@"Save failed with error: %@", error);
} else {
    NSLog(@"Success!");
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

活动流中的匿名参与者

来自分类Dev

在GetStream中设置反应的参与者

来自分类Dev

在任何时候,服务结构集群中给定参与者的给定参与者ID的参与者实例的最大数量是多少?

来自分类Dev

如何在MSConversation中检索参与者的姓名?

来自分类Dev

如何在TurnBasedMatch中获得自己的参与者ID?

来自分类Dev

如何从GitHub拉取请求中删除参与者?

来自分类Dev

从参与者内部的请求中检索会话信息?

来自分类Dev

如何从GitHub拉取请求中删除参与者?

来自分类Dev

研究中每个参与者的缺失值

来自分类Dev

在 Azure Service Fabric 参与者中启动线程?

来自分类Dev

在corda中的非参与者页面上显示信息

来自分类Dev

Service Fabric 参与者中的静态对象

来自分类Dev

hyperledger composer 在交易过程中将参与者添加到参与者数组中

来自分类Dev

诊断Azure有状态参与者

来自分类Dev

SQL-参与者之间的关系

来自分类Dev

有状态参与者的地理映射

来自分类Dev

SignalR参与者或无状态服务

来自分类Dev

Skype机器人参与者

来自分类Dev

mognodb聚合(按参与者分组)

来自分类Dev

endturnwithnext参与者,它是如何工作的?

来自分类Dev

Sharepoint日历活动参与者

来自分类Dev

DB设计-活动参与者

来自分类Dev

诊断Azure有状态参与者

来自分类Dev

获取参与者姓名MSConversation

来自分类Dev

OpenDDS 参与者无法发现彼此

来自分类Dev

参与者与 Amazon SQS 的集成

来自分类Dev

向用户显示项目参与者

来自分类Dev

Hyperledger composer 对参与者数组的许可

来自分类Dev

用例 - 参与者关系