2011-11-02 2 views
13

동기화 서비스에서 수정 된 연락처를 가져 오는 경우 applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error 방법을 사용합니다. 주소록의 ID는 2C13E20E-6B24-4090-81FA-7A1E8B28119B의 형식이며이 종류의 일부 ID가 ISyncChange * 개체에 존재하더라도 주소록에있는 실제 연락처 ID는 아닙니다 ...주소록 연락처 ID를 동기화 서비스 연락처 ID에서 가져 오는 방법이 있습니까?

Is Sync Services에서 특정 연락처의 ID가 주소록에 무엇인지 알 수있는 방법이 있습니까?


묻는 이유는 주소록의 연락처에 대한 큰 그림을 저장할 때, 동기화 서비스는 자신의 내부 데이터 보관되어있는 사진을 저장하지 않습니다. 따라서 큰 그림으로 수정되거나 추가 된 연락처는 기본적으로 불완전한 정보를 제공하는 그림없이 Sync Services에 의해 반환됩니다.

은 내가 ~/Library/Application Support/Address Book/Images/

덕분에 연락처의 사진을 검색 할 수 있도록 (듯이), 주소록 ID를 얻을 필요가!

답변

1

~/라이브러리/Application Support/Address Book/Images /의 이미지와 관련된 주소록 ID를 사용하는 것은 좋지 않습니다. 원하는 데이터를 제공하는 API를 찾는 것이 좋습니다. 이미지가 그때 또는 그 이후에있을 것이라는 보장이 없기 때문에 (또는 업그레이드 후이 모든 것이 바뀔 수 있습니다!). 연구의 소량 후

, 당신이 원하는 API는 여기에 설명되어 나타납니다 : http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AddressBook/Tasks/AccessingData.html#//apple_ref/doc/uid/20001023-103617

그것은 당신이 반드시 자신의 ABImageClient 프로토콜을 이해하고 콜백을 제공해야하지만, 내가하지 않기 때문에 조금 다루기이다 그것이 그렇게 나쁘다고 생각합니다. 이 접근 방식은 이전에했던 것보다 훨씬 낫습니다. Apple이이 데이터를 얻는 방법에 대해 사과하고 있으며, 향후이를 망가뜨릴 염려는 없습니다.

+0

연락처의 이미지 데이터를 얻기 위해'imageData'를 사용한다고 가정 해 보겠습니다. 어떻게 연락하나요? 어떻게 든 신분증을 가져야합니다. – Andrei

+0

흠, 원래 이것을 읽을 때 나는 그 부분을 완전히 놓쳤다. ForEntityName에 대한 동기화 서비스 문서를 읽으려고합니다.하지만 Apple이 Lion에서 해당 API를 더 이상 사용하지 않기로 결정한 이후로 개발자는 developer.apple.com에서 모든 설명서를 제거했습니다. 어쩌면 동기화 서비스에 대해 더 많이 알고있는 사람이라면 AB의 연락처에 대한 iSyncChange 객체 ID에서 기본 uuid로가는 방법을 알게 될 것입니다. – tjarratt