我有一个用于图像的Core Data对象类:
@objc class Image: NSManagedObject {
@NSManaged var imageData: NSData?
@NSManaged var recordID: NSNumber?
@NSManaged var updatedAt: NSDate?
}
我有两个不同的数组,它们将包含这些对象:
var container0 = [Image]()
var container1 = [Image]()
我想要做的是编写一个函数,过滤掉container1中 recordID 与任何 recordID 匹配的任何图像对象container2中的对象。
类似的东西:
func returnIntersectionByRecordID() -> [Image] {
var intersection = [Image]()
for object0 in container0 {
for object1 in container1 {
if object0.recordID == object1.recordID {
intersection.append(object0)
}
}
}
return intersection
}
但是,我想用过滤器来做这件事。
答案 0 :(得分:2)
我分两步走了。 首先,使用map
获取第二个数组(container2)的id// the will produce array if ids
let ids = container2.map({ return $0.recordId })
然后,过滤
let result = container.filter({ ids.contains($0.recordId) })