Ich hatte dieselbe Frage und als ich dieses Jahr auf der WWDC war, habe ich mehrere Apple-Ingenieure gefragt und sie hatten keine Ahnung. Ich fragte einen Mann, den ich in der Schlange traf und er hatte die Antwort:
%Vor%Dies funktioniert für jeden EK-Teilnehmer. Ich wurde gewarnt, das Beschreibungsfeld NICHT zu verwenden, da sich das jederzeit ändern kann.
Hoffe, das hilft!
Keine der obigen Lösungen ist zuverlässig:
URL
kann etwas wie /xyzxyzxyzxyz.../principal
sein und offensichtlich ist das keine E-Mail. EKParticipant:description
kann sich ändern und keine E-Mails mehr enthalten. emailAddress
selector an die Instanz senden, aber das ist undokumentiert, kann sich in der Zukunft ändern und in der Zwischenzeit könnte Ihre App abgelehnt werden. Am Ende musst du EKPrincipal:ABRecordWithAddressBook
verwenden und dann E-Mails von dort extrahieren. So:
Beachten Sie, dass das Aufrufen von ABAddressBookCreateWithOptions
teuer ist, daher sollten Sie dies nur einmal pro Sitzung tun.
Wenn Sie nicht auf den Datensatz zugreifen können, greifen Sie auf URL.resourceSpecifier
zurück.
Eine andere Möglichkeit könnte darin bestehen, die URL des EK-Teilnehmers nachzuschlagen. Die Ausgabe sollte eine mailto-URI wie mailto: [email protected] sein. Es gibt einige spärliche Dokumentation hier:
Die Eigenschaft wird nicht nach API-Version 6.0 verfügbar gemacht - ich suche selbst nach der Antwort und habe keine andere Arbeit gefunden, als die E-Mail-Adresse aus der Objektbeschreibung zu analysieren. Beispiel:
%Vor%Parsen Sie die obige Zeichenfolge in ein NSDictionary und ziehen Sie die E-Mail mit dem Schlüssel @ "email"
Tags und Links ekevent