【问题标题】:What can i use instead of 'for' in Swift我可以在 Swift 中使用什么来代替“for”
【发布时间】:2018-11-03 22:46:52
【问题描述】:

我有一个非常初级的问题。

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

我想将名称属性提取到一个数组中以从中选择一个 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”?怎么做?

非常感谢,对于我的 soo 初学者问题,我们深表歉意。

【问题讨论】:

  • 您的代码在myArray 留下一个用户名 - 最后一个。
  • 您的实际问题是什么?为什么不想使用for?您使用其他东西的目标是什么?
  • 使用 myarray= results.map{}

标签: ios swift core-data


【解决方案1】:

您可以转换为实际的实体名称

var myArray = [String]()

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    相关资源
    最近更新 更多