2017-07-11 34 views
0

我正在使用'sortdescriptor'来获取'nsmutablearray',它按创建日期排序,但问题不在谓词过滤中。我想同时应用sort和filter.i试着用以下如何在coredata中使用谓词和sortdecriptor

let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: entityName) 
    let sort = NSSortDescriptor(key: "date", ascending: false) 
    let pre:NSPredicate = NSPredicate(format: "id == %d", 100) 
    fetchRequest.predicate = pre 
    fetchRequest.sortDescriptors = [sort] 
+0

你能分享更多的细节?例如,你的实体对象的结构是什么?您使用当前代码得到的结果是什么? –

+0

你会得到什么样的输出?你期望什么?试一下'“id ==%ld”'(比较https://stackoverflow.com/a/37073412/1187415) –

+0

什么是你想获取结果的entityName –

回答

0

你可以试试这个: -

change <Message> to your entityModel 


let fetchRequest = NSFetchRequest<Message>.init(entityName: "Message") 
fetchRequest.sortDescriptors = [NSSortDescriptor.init(key: "date", ascending: false)] 
let predicate = NSPredicate.init(format: "id = %@","100") 
fetchRequest.predicate = predicate 
+0

这个谓词肯定是错误的。 –