我正在尝试确定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 = [email protected]; 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 = [email protected]; isSelf = 1}
(lldb) print ekEvent.organizer.isCurrentUser
(BOOL) $16 = YES
最佳答案
默认情况下, Activity 的组织者不在与会者列表中,您将其明确添加为与会者。
组织者被认为与参加者不同,并与属性组织者一起描绘。如果使用该对象访问isCurrentUser,它将为您提供值Yes。
如果您显式添加组织者电子邮件ID作为与会者,则认为该用户是其他用户,因此您需要比较与会者的URL并进行检查。
示例:用户a .. @ a.com组织了一次 session 或 Activity 并邀请了b .. @ b.com
那么在与会者中,您只有b .. @ b.com,而a .. @ a.com将作为组织者。
如果您将a .. @ a.com添加为与会者,则其属性isCurrentUser为No,您可以通过将与会者URL字符串本身与组织者进行比较来进行检查。