2016-01-28 4 views
1

я получил следующее:NSPredicate: Получение наибольшего значения

let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let managedObjContext = appDelegate.managedObjectContext 
    let fetchRequest = NSFetchRequest(entityName: "RAS") 
    var error: NSError? 
    let predicate1 = NSPredicate(format: "%K AND %K == false", "rasScore", "rasStatus") 

    fetchRequest.predicate = predicate1 

    do {... 

Это дает мне все записи, которые соответствуют параметрам NSPredicate, но я хочу только запись с наибольшим значением в rasScore , Как мне это получить? Можно ли включить это в формат NSPredicate?

+0

Вы хотите, чтобы все записи, но значения от самого высокого до самого низкого. ? Это означает, что rasScore имеет наибольшее значение, эта конкретная запись будет первой и имеет самое низкое значение будет последней – KiranJasvanee

+0

установить сортировку и предел 1 результат, который вы имеете в виду? – Wain

+0

Вот что, он может установить сортировку с помощью NSSortDescriptor и ограничить использование setFetchLimit – KiranJasvanee

ответ

5

Установите fetchLimit из ваших fetchRequest на 1 и использовать дескриптор для сортировки по значению "rasScore" убыванию как это:

fetchRequest.fetchLimit = 1 
var highestSortDescriptor : NSSortDescriptor = NSSortDescriptor(key: "rasScore", ascending: false) 
fetchRequest.sortDescriptors = [highestSortDescriptor] 
+0

Спасибо, миллион, @MarkHim! Я не знал о существовании fetchLimit. –

Смежные вопросы