2015-11-17 7 views
0

Следующий код выдает NSInvalidArgumentException на призыв к fetchAssetsWithOptions:Исключение с использованием NSPredicate с рамкой Photos: Определить - [NSFunctionExpression constantValue]!

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]!' 

Я попытался многочисленные вариации на строки формата предиката, но всегда получать это сообщение, когда я пытаюсь используйте умножение. Что я делаю не так?

ответ

0

Я не уверен, почему, но когда вы не передаете аргументы формата predicateWithFormat: и используйте его с фотографиями, вы получаете эту ошибку;

Я смог исправить проблему, убедившись, что передаю аргументы формата. Так что в вашем случае:

float heightLimit = pixelWidth * 1.95; 
[NSPredicate predicateWithFormat:@"pixelHeight >= %f", heightLimit];