2015-03-02 15 views
6

Lavorando su un'app iOS 8 e gestendo molte foto, devo identificare in modo univoco PHassets ma non riesco a trovare alcuna proprietà da usare? Ho trovato una proprietà suiOS 8, PhotoKit, PHAsset, identificatore univoco

PHObject/localIdentifier 

documentato qui

https://developer.apple.com/library/ios/documentation/Photos/Reference/PHObject_Class/index.html#//apple_ref/occ/instp/PHObject/localIdentifier

C'è un modo per avere un ID univoco su PHAsset? PHObject è un po 'più pesante da usare.

risposta

8

Sì, questa è l'unica proprietà da utilizzare.

Tuttavia, PHObject implementa entrambi i metodi -hash e -isEqual:. È inoltre conforme al protocollo NSCopying, il che significa che può essere utilizzato come chiave nei dizionari e può essere inserito in insiemi, ecc. Inoltre continua a funzionare quando si ricaricano gli oggetti PHAsset. Questa è una grande vittoria rispetto alla classe ALAsset. L'implementazione di -isEqual è molto più veloce della proprietà localIdentifier e può essere utilizzata tranquillamente sul thread principale. Puoi usare profiler per avere un'idea di cosa c'è sotto il cofano.

+0

Ciao, quindi PHAsset ha la proprietà .hash, ma devo implementare la mia equazione? per PHAsset? – Huang

+1

No, PHAsset implementa entrambi, oltre al protocollo NSCopying. – kean

+0

Questo identificatore locale è globalmente univoco? – WYS

Problemi correlati