gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 07:53:09 26 4
gpt4 key购买 nike

我正在尝试确定当前用户是 EKEvent 的 参与者 (EKPartipants)。在 iOS6 中,EKParticipant 公开了一个名为 isCurrentUser 的属性

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

它应该准确地提供这些信息。不幸的是,每次我查找 EKParticipant 的 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

最佳答案

事件的组织者默认不在与会者列表中,您明确将他添加为与会者。

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

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

示例:用户 a..@a.com 组织了一次 session 或事件并邀请了 b..@b.com那么在与会者中,您将只有 b..@b.com 和 a..@a.com 将作为组织者提供。

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

关于iphone - EventKit 中的 EKParticipant 错误地为 isCurrentUser 属性返回 NO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15628493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com