我可以在Swift中使用什么代替'for'

时间:2018-11-03 22:46:53

标签: ios swift core-data

我有一个初学者的问题。

首先,我有一个带有属性(名称)的Entity(人)。

我想将name属性获取到一个数组以从中选择randomElement。以下代码成功将数据返回到单独的数组:

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let context = appDelegate.persistentContainer.viewContext
    let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")
    request.returnsObjectsAsFaults = false

    var myArray: [String]?

    do {

        let results = try context.fetch(request)

        for result in results as! [NSManagedObject] {

            if let username = result.value(forKey: "name") as? String {
                myArray = [username]
                print(myArray!)
            }
        }
    }
    catch {
        print("not successful")
    }

我可以使用什么代替“ FOR ”?又如何?

非常感谢,并为我的初学者问题感到抱歉。

1 个答案:

答案 0 :(得分:1)

您可以强制使用实际的实体名称

var myArray = [String]()

do {
       let results = try context.fetch(request)
       myArray  = (results as! [Person]).compactMap { $0.name }  
       print(myArray) 
}
catch {
    print("not successful")
}