Làm cách nào để lọc theo loại phương tiện truyền thông sử dụng NSPredicate
với PHFetchOptions
? Tôi đang cố loại trừ các tốc độ chậm (tốc độ khung hình cao) và thời gian trôi đi. Tôi tiếp tục nhận được kết quả lạ khi tôi cố gắng sử dụng trường predicate
của PHFetchOptions
.Làm cách nào để lọc theo loại phương tiện truyền thông bằng cách sử dụng NSPredicate với PHFetchOptions
Điện thoại của tôi có một (120+) video thông thường và một video mo chậm. Khi tôi chạy ví dụ từ Apple's docs, tôi nhận được kết quả chính xác về sau: 1 video chậm chạp.
PHFetchOptions *options = [PHFetchOptions new];
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) != 0 || (mediaSubtype & %d) != 0", PHAssetMediaSubtypeVideoTimelapse, PHAssetMediaSubtypeVideoHighFrameRate];
Nhưng tôi đang cố gắng loại trừ làm chậm, thay vì chọn nó. Tuy nhiên nếu tôi phủ nhận điều kiện lọc, tôi nhận được không có kết quả lại:
options.predicate = [NSPredicate predicateWithFormat:@"(mediaSubtype & %d) == 0", PHAssetMediaSubtypeVideoHighFrameRate];
<PHFetchResult: 0x1702a6660> count=0
gây nhầm lẫn, các tài liệu của Apple liệt kê tên của các lĩnh vực như mediaSubtypes
(với một "s"), trong khi vị mẫu của họ được lọc theo mediaSubtype
(không có "s").
Đang cố gắng để lọc trên mediaSubtypes
tạo ra một lỗi:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Can't do bit operators on non-numbers'
Có ai đã có thể làm cho người đứng đầu hoặc đuôi của vị này?
Cộng một. Chúng tôi đã có vấn đề tương tự. Chưa sửa chữa. –
cùng một vấn đề ở đây – user1055568