从 Core Data 的每个实体中仅选择 "name" 作为数组 Swift 4

Pick only "name" from every entity from Core Data as Array Swift 4

我在 CoreData 中有用户模型和汽车模型。我为 1 个用户节省了 3 辆车。

如何只选择每辆车的名称变量并设置为数组?

    let users = try! managedContext.fetch(userFetch)

    let currentUser: User = users.first as! User
    let cars = currentUser.cars?.allObjects as! [Car]

    print(currentUser.email)
    let carsList = [String]
    cars.forEach { sample in
        carsList.append(sample.name)
    }

有比我更好的解决方案吗?

有更好的解决方案

let carList = cars.map { [=10=].name }

如果您声明(和设计)cars 为非可选 Set<Car> 而不是未指定 NSSet?,还有更好的

let currentUser = users.first as! User    
let carsList = currentUser.cars.map { [=11=].name }

没有allObjects,没有类型转换