NSPredicate を使用して画像を取得し、一致する画像名をフィルタリングする際に問題が発生しました。
コードは でクラッシュしPHFetchReult *fetchResult
ます。
エラーメッセージは次のとおりです。
2016-09-15 00:51:25.112 PICTAG[1122:971448] -[__NSCFString objectID]: unrecognized selector sent to instance 0x14d89150
2016-09-15 00:51:25.114 PICTAG[1122:971448] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectID]: unrecognized selector sent to instance 0x14d89150'
私のコードは次のとおりです。
-(NSMutableArray *) getAllMatchingPhotos {
NSMutableArray *matchingPhotos = [[NSMutableArray alloc]init];
while(matchingPhotos.count != photos.count){
int i = 0;
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.predicate = [NSPredicate predicateWithFormat:@"SELF == %@",[photos[i] valueForKey:@"keyFilePath"]];
PHFetchResult *fetchResult = [PHAsset fetchAssetsWithMediaType:PHAssetMediaTypeImage options:fetchOptions];
[matchingPhotos addObject:fetchResult];
i++;
}
for (int j = 0; j < matchingPhotos.count; j++){
PHImageRequestOptions *requestOptions = [[PHImageRequestOptions alloc] init];
requestOptions.resizeMode = PHImageRequestOptionsResizeModeFast;
requestOptions.deliveryMode = PHImageRequestOptionsDeliveryModeFastFormat;
requestOptions.synchronous = true;
PHImageManager *manager = [PHImageManager defaultManager];
[manager requestImageForAsset:matchingPhotos[j] targetSize:CGSizeMake(100, 100) contentMode:PHImageContentModeDefault options:requestOptions resultHandler:^void(UIImage *image, NSDictionary *info) {
@autoreleasepool {
[finalArray addObject:image];
}
}];
}
return finalArray;
}