Modificare i metadati Spotlight per un file all'esterno dell'importatore Spotlight?
Domanda
Vorrei modificare un attributo dei metadati Spotlight di un file all'interno della mia applicazione (ovvero non in un importatore Spotlight) ma non riesco a trovare alcuna API per farlo. È possibile? I puntatori ai documenti pertinenti sarebbero l'ideale.
Nel caso sia utile, ecco il mio caso d'uso:
Voglio archiviare un riferimento a un file percorso di sistema in un archivio dati core. Idealmente, dovrei essere in grado di trovare file anche se viene spostato, potenzialmente attraverso volumi montati. La mia comprensione è quella un FSRef o AliasRecord archiviato non farà il trucco perché loro non sono invarianti rispetto alle mosse attraverso montate volumi. Quindi il mio piano era di memorizzare un URL e anche per aggiungere un UUID (anch'esso archiviato in l'archivio dati) nel file Riflettere i metadati in modo che io potessi eseguire una query Spotlight per questo UUID se l'URL non punta più a il file quando l'app torna a cerca il file.
Soluzione
Dopo ulteriori ricerche, l'uso di Spotlight non è la soluzione migliore per il caso d'uso. AliasRecord è un archivio persistente migliore per un file. Tiene automaticamente traccia delle mosse / rinominazioni / ecc. Puoi leggere ulteriori informazioni su AliasRecords qui . Chris Hansen ha scritto un wrapper Objective-C per AliasRecords, BDAlias ??
. È attualmente disponibile da rentzsch.com SVN.