2011-11-02 11 views
13

Podczas pobierania zmodyfikowanych kontaktów z usług synchronizacji za pomocą metody applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error. Identyfikatory w książce adresowej mają postać 2C13E20E-6B24-4090-81FA-7A1E8B28119B i chociaż niektóre identyfikatory tego rodzaju są obecne w obiekcie ISyncChange *, nie są to rzeczywiste identyfikatory kontaktu, które można znaleźć w książce adresowej ...Czy istnieje sposób uzyskania identyfikatora kontaktu książki adresowej z identyfikatora kontaktu Usługi synchronizacji?

istnieje sposób, aby dowiedzieć się z usług synchronizacji, jaki konkretny identyfikator kontaktu znajduje się w książce adresowej?


Powodem pytaniem jest, że podczas zapisywania dużych zdjęć do kontaktów w książce adresowej, Sync Services nie zapisać te zdjęcia w swojej wewnętrznej pamięci danych. W związku z tym kontakty zmodyfikowane lub dodane z dużym obrazem zostaną zwrócone przez usługi synchronizacji bez obrazu, oferując w zasadzie niekompletne informacje.

muszę uzyskać identyfikator książki adresowej, dzięki czemu mogę patrzeć zdjęcie kontaktu w ~/Library/Application Support/Address Book/Images/

Dzięki!

Odpowiedz

1

To zły pomysł, aby polegać na identyfikatorze książki adresowej powiązanym z obrazem w ~/Library/Application Support/Address Book/Images/- lepiej byłoby znaleźć API, które zapewnia dane, które chcesz pracować z, ponieważ nie masz gwarancji, że obraz będzie tam wtedy lub później (po aktualizacji, to wszystko może się zmienić!).

Po małej ilości badań, wydaje się, że api chcesz jest udokumentowane tutaj: http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AddressBook/Tasks/AccessingData.html#//apple_ref/doc/uid/20001023-103617

Jest to trochę niewygodne, ponieważ koniecznie trzeba zrozumieć ich protokół ABImageClient i dostarczenie zwrotnego, ale nie wiem myśl, że to takie złe. Takie podejście jest o wiele lepsze niż to, co robiłeś - to usankcjonowany przez Apple sposób uzyskania tych danych i nie będziesz musiał się martwić, że w przyszłości zostanie naruszony.

+0

Przypuszczam, że masz na myśli użycie 'imageData' w celu uzyskania danych obrazu dla kontaktu. Jak uzyskać ten kontakt? Potrzebuję jego identyfikatora. – Andrei

+0

Hmm, całkowicie pominięto tę część pytania, gdy czytałem to pierwotnie. Próbuję odczytać dokumentację usług synchronizacji dla ApplyChange: ForEntityName: ale ponieważ Apple zdecydowało się wycofać tę funkcję API w Lion, usunęła całą dokumentację z developer.apple.com. Być może ktoś bardziej kompetentny w zakresie usług synchronizacji będzie wiedział, jak dostać się z ID obiektu iSyncChange do podstawowego uuidu dla kontaktu w AB. – tjarratt

Powiązane problemy