EventKit中的EKParticipant错误地为isCurrentUser属性返回NO

Rah*_*swa 27 iphone ios eventkit

我正在尝试确定哪个EKEvent's与会者(EKPartipants)是当前用户.在iOS6中,EKParticipant公开名为isCurrentUser的属性

http://developer.apple.com/library/ios/#documentation/EventKit/Reference/EKParticipantClassRef/Reference/Reference.html#//apple_ref/occ/cl/EKParticipant

这应该是准确提供这些信息.不幸的是,每次我查找一个EKParticipant's isCurrentUser属性时,它都会返回NO,即使情况显然不是这样.

任何帮助将非常感激!

更新的发现:

如果您查看活动组织者,isCurrentUser == YES如果您是组织者,则会正确返回.但是,如果您从参加者集中检索自己,则会返回isCurrentUser == NO.

示例控制台输出,其中两个不同的EKParticipant对象引用具有相同电子邮件地址的同一个人:

(lldb) po [ekEvent.attendees objectAtIndex:3]
$20 = 0x208c1220 EKAttendee <0x208c1220> {UUID = CCD17C5E-FCB5-4BC9-8D9E-7E957B20025D;       
name= ----- -----; email = --------wa@me.com; status = 2; role = 0; type = 1}

(lldb) print [(EKParticipant *)[ekEvent.attendees objectAtIndex:3] isCurrentUser]
(BOOL) $15 = NO

(lldb) po ekEvent.organizer
$19 = 0x20b720e0 EKOrganizer <0x20b720e0> {UUID = FD0E434D-2C9F-4A6E-98DC-    
7FA6F27C3D1E; name = ----- -----; email = --------wa@me.com; isSelf = 1}

(lldb) print ekEvent.organizer.isCurrentUser
(BOOL) $16 = YES
Run Code Online (Sandbox Code Playgroud)

小智 1

默认情况下,活动组织者不在与会者列表中,您需要明确将他添加为与会者。

组织者被认为与与会者不同,并用属性组织者来描述。如果您使用该对象访问 isCurrentUser ,它将为您提供值 Yes。

如果您明确将组织者电子邮件 ID 添加为与会者,则会将其视为不同的用户,因此您需要比较与会者 URL 并进行检查。

示例:用户 a..@a.com 组织了一次会议或活动并邀请了 b..@b.com,那么在与会者中您将只有 b..@b.com,而 a..@a.com 将作为可用组织者。

如果您还添加 ..@a.com 作为与会者,则其属性 isCurrentUser 为 No,您可以通过将与会者 URL 字符串本身与组织者进行比较来进行检查。