2014-09-22 153 views
0

正在设置NSPredicate重写我的客观存在的C代码(IOS),以迅速而现在在迅速面临Coredata NSPredicate一些问题,因为有一些多对一的关系,反之亦然..我用下面的代码,斯威夫特CoreData

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()是我试图去做的谓词add.Unfortunately正在以下错误

type anyobject? does not confirm to protocol, CVarArgType 

任何帮助,将不胜感激..

谢谢

+0

我目前无法检查,但我假设你已经打开可选的:'contact.threads.anyObject()!' – 2014-09-22 12:48:26

+0

不,它不起作用 – sam 2014-09-22 13:01:41

+0

如果thread是一个relatiti onship,为什么你使用[c]执行不区分大小写的搜索? – 2014-09-22 13:18:03

回答

1

你需要把它和投解开特定类

contact.threads.anyObject()! as MYClass