Ios 在Swift CoreData中设置NSPredicate

Ios 在Swift CoreData中设置NSPredicate,ios,core-data,swift,Ios,Core Data,Swift,我正在将现有的目标c代码(ios)改写为swift,现在我在swift中面临Coredata NSPredite的一些问题,因为存在一些多对一关系,反之亦然。。我使用以下代码 let fetchRequest = NSFetchRequest(entityName: "TUMessage") let sortSequence = NSSortDescriptor(key: "sequence", ascending: true) let sortTime = NSSort

我正在将现有的目标c代码(ios)改写为swift,现在我在swift中面临Coredata NSPredite的一些问题,因为存在一些多对一关系,反之亦然。。我使用以下代码

    let fetchRequest = NSFetchRequest(entityName: "TUMessage")
    let sortSequence = NSSortDescriptor(key: "sequence", ascending: true)
    let sortTime = NSSortDescriptor(key: "epoch_time", ascending: true)
    var filterPredicate:NSPredicate = NSPredicate(format:"thread == [c] %@",contact.threads.anyObject())
    fetchRequest.predicate = filterPredicate
    var sortDescriptor:NSArray = NSArray(objects: sortTime,sortSequence)
    fetchRequest.sortDescriptors = sortDescriptor
    fetchRequest.fetchBatchSize = 50
    return fetchRequest
其中,
“TUMessage”
是我们需要从中获取数据的表,
“sequence”
用于对获取的结果进行排序,
“thread==[c]@”
是消息表的一种关系(多对一,因为每个联系人都有多个线程)

contact.threads.anyObject()
是我试图添加的谓词

  type anyobject? does not confirm to protocol, CVarArgType
任何帮助都将不胜感激


谢谢你

你需要打开它并将其投射到特定的类中

contact.threads.anyObject()! as MYClass

我现在无法检查它,但我假设您已经打开了可选的:
contact.threads.anyObject()如果线程是关系,为什么要使用[c]执行不区分大小写的搜索?