Come faccio a filtrare per sottotipo multimediale utilizzando NSPredicate
con PHFetchOptions
? Sto tentando di escludere i video mo mo (alta frequenza di fotogrammi) e time lapse. Continuo a ricevere strani risultati quando provo a utilizzare il campo predicate
di PHFetchOptions
.Come filtrare per sottotipo di media utilizzando NSPredicate con PHFetchOptions
Il mio telefono ha un numero (120+) di video regolari e un video mo lento. Quando eseguo l'esempio da Apple's docs, ottengo il risultato corretto: 1 mo lento video.
PHFetchOptions *options = [PHFetchOptions new];
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) != 0 || (mediaSubtype & %d) != 0", PHAssetMediaSubtypeVideoTimelapse, PHAssetMediaSubtypeVideoHighFrameRate];
Ma sto cercando di escludere lento mo, invece di selezionarlo. Tuttavia, se nego la condizione di filtro, ottengo risultati zero indietro:
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];
<PHFetchResult: 0x1702a6660> count=0
Confusamente, elencare i documenti di Apple il nome del campo come mediaSubtypes
(con una "s"), mentre il loro predicato campione sta filtrando su mediaSubtype
(senza una "s").
Cercando di filtrare mediaSubtypes
produce un errore:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do bit operators on non-numbers'
nessuno è stato in grado di fare testa o croce di questo predicato?
Più uno. Abbiamo avuto problemi simili. Nessuna correzione ancora. –
stesso problema qui – user1055568