【发布时间】:2015-06-15 20:25:31
【问题描述】:
我有这样的 NSManagedObject 类
class Company: NSManagedObject {
@NSManaged var name: String
@NSManaged var kind: String
@NSManaged var tags: NSSet?
}
其中“tags”包含字符串数组(不是 NSManagedObjects)。我正在尝试像这样过滤它:
let request = NSFetchRequest(entityName: "Company")
request.returnsObjectsAsFaults = false
request.predicate = NSPredicate(format: "ANY %@ in tags", tag)
request.fetchBatchSize = 20
let results = context.executeFetchRequest(request, error: nil)!
但它没有用。我也尝试了这些可能性:
NSPredicate(format: "ANY tags CONTAINS %@", tag)
NSPredicate(format: "ANY tags.allObjects CONTAINS %@", tag)
【问题讨论】:
-
tags被声明为NSSet?,但你说它包含一个数组。 – 如果tags的值不是托管对象,那为什么要声明为@NSManaged? -
NSSet有allObjects属性,这是一个数组。我不能使用NSManagedObject属性而不添加@NSManaged
标签: xcode swift core-data nspredicate nsset