2011-11-02 16 views
13

Quando si ricevono i contatti modificati dai servizi di sincronizzazione, tramite il metodo applyChange:forEntityName:remappedRecordIdentifier:formattedRecord:error. Gli ID nella rubrica sono nel formato 2C13E20E-6B24-4090-81FA-7A1E8B28119B e anche se alcuni ID di questo tipo sono presenti nell'oggetto ISyncChange *, quelli non sono veri ID di contatto che possono essere trovati nella rubrica ...C'è un modo per ottenere gli ID dei contatti della Rubrica dagli ID dei contatti dei servizi di sincronizzazione?

È c'è un modo per scoprire dai servizi di sincronizzazione qual è l'ID di un certo contatto nella Rubrica?


La ragione di chiedere è che quando si salvano immagini di grandi dimensioni per i contatti nella Rubrica, Sync Services non salva le immagini nella loro memorizzazione interna dei dati. Pertanto, i contatti che sono stati modificati o aggiunti con un'immagine di grandi dimensioni verranno restituiti da Servizi di sincronizzazione senza l'immagine, offrendo fondamentalmente informazioni incomplete.

ho bisogno di ottenere la Rubrica ID, in modo che possa guardare in alto l'immagine del contatto in ~/Library/Application Support/Address Book/Images/

Grazie!

risposta

1

È una cattiva idea affidarsi all'ID della Rubrica relativa a un'immagine in ~/Libreria/Supporto applicazioni/Rubrica/Immagini/- sarà meglio trovare un'API che ti fornisca i dati che desideri lavorare con, perché non è garantito che l'immagine sarà lì allora, o dopo (dopo un aggiornamento, tutto questo potrebbe cambiare!).

Dopo una piccola quantità di ricerca, sembra che l'API si desidera è documentato qui: http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AddressBook/Tasks/AccessingData.html#//apple_ref/doc/uid/20001023-103617

E 'un po' ingombrante perché è necessariamente bisogno di capire il loro protocollo ABImageClient e fornire una richiamata, ma non lo faccio penso sia così male Questo approccio è molto meglio di quello che stavi facendo: è il modo sanzionato Apple di ottenere questi dati e non dovrai preoccuparti che si rompa in futuro.

+0

Suppongo che vogliate usare 'imageData' per ottenere i dati dell'immagine per un contatto. Come ottengo quel contatto? Ho bisogno di avere il suo ID in qualche modo. – Andrei

+0

Hmm, ho completamente perso quella parte della domanda quando ho letto questo in origine. Sto cercando di leggere la documentazione dei servizi di sincronizzazione per ApplyChange: ForEntityName: ma poiché Apple ha deciso di deprecare quell'API in Lion, hanno rimosso tutta la documentazione da developer.apple.com. Forse qualcuno più ben informato sui servizi di sincronizzazione saprà come ottenere dall'ID oggetto iSyncChange all'uuu sottostante per il contatto in AB. – tjarratt

Problemi correlati