Wie filtere ich nach Medien Subtype mit NSPredicate
mit PHFetchOptions
? Ich versuche, langsam mo (hohe Bildrate) und Zeitraffer Videos auszuschließen. Ich bekomme immer seltsame Ergebnisse, wenn ich versuche, das predicate
Feld von PHFetchOptions
zu verwenden.Wie Filtern nach Medien Subtyp mit NSPredate mit PHFetchOptions
Mein Telefon hat eine Reihe (120+) regelmäßige Videos und ein langsames MO-Video. Wenn ich das Beispiel von Apple's docs starte, bekomme ich das korrekte Ergebnis zurück: 1 langsame Videoaufnahme.
PHFetchOptions *options = [PHFetchOptions new];
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) != 0 || (mediaSubtype & %d) != 0", PHAssetMediaSubtypeVideoTimelapse, PHAssetMediaSubtypeVideoHighFrameRate];
Aber ich versuche zu ausschließen langsam mo, anstatt sie wählen. Allerdings, wenn ich die Filterbedingung negieren, bekomme ich null Treffer:
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];
<PHFetchResult: 0x1702a6660> count=0
Verwirrend, die Apple-docs den Namen des Feldes als mediaSubtypes
Liste (mit einem „s“), während ihre Probe Prädikat filtert auf mediaSubtype
(ohne ein "s").
auf mediaSubtypes
filtern Der Versuch, erzeugt einen Fehler:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do bit operators on non-numbers'
Hat jemand in der Lage gewesen, Kopf oder Zahl dieses Prädikat zu machen?
Plus eins. Wir hatten ähnliche Probleme. Noch keine Lösung. –
das gleiche Problem hier – user1055568