0

次のコードは、fetchAssetsWithOptions の呼び出しで NSInvalidArgumentException をスローします。

PHFetchOptions *allPhotosOptions = [[PHFetchOptions alloc] init];
allPhotosOptions.sortDescriptors =
        @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
allPhotosOptions.predicate = 
        [NSPredicate predicateWithFormat:@"pixelHeight >=  pixelWidth * 1.95" ];
self.allPhotos = [PHAsset fetchAssetsWithOptions:allPhotosOptions];

メッセージは

NSInvalidArgumentException ... reason: '*** -constantValue only defined for abstract class.  
    Define -[NSFunctionExpression constantValue]!'

述語フォーマット文字列でさまざまなバリエーションを試しましたが、乗算を使用しようとすると常にこのメッセージが表示されます。私は何を間違っていますか?

4

1 に答える 1

0

理由は定かではありませんが、フォーマット引数を predicateWithFormat: に渡さずに Photos で使用すると、このエラーが発生します。

フォーマット引数を渡していたことを確認することで、問題を解決できました。だからあなたの場合:

float heightLimit = pixelWidth * 1.95;
[NSPredicate predicateWithFormat:@"pixelHeight >= %f", heightLimit];
于 2015-12-14T04:15:28.513 に答える