【问题标题】:Loop or map Core Data array to get every occurence of an object循环或映射 Core Data 数组以获取对象的每次出现
【发布时间】:2018-08-16 15:57:09
【问题描述】:

我想遍历 CoreData Managed Object 数组以获取每个 code 出现并以每个 code 字符串作为参数调用 dataUpdate("\(code)") 函数。

func updateWalletValue() {

    // CryptosMO is the Managed Object containing `code` values among others (`amountValue` for example).
    var items : [CryptosMO] = []

    if CoreDataHandler.fetchObject() != nil {
        items = CDHandler.fetchObject()!
    }

    total = items.reduce(0.0, { $0 + Double($1.amountValue)! } )
    WalletTableViewController.staticTotal = total

    // What I am trying to do:
    for code in items.code {
        CryptoDataCall.init().dataUpdate("\(code)")
    }

}

如何访问 code 事件并在循环中使用它们或映射它们以调用函数?

【问题讨论】:

    标签: arrays swift uitableview loops core-data


    【解决方案1】:

    遍历items数组,访问code成员 关闭:

    for items in items { item in 
        // do something with `item.code` ...
    }
    

    或使用简写参数名称:

    for items in items { 
        // do something with `$0.code` ...
    }
    

    或者forEach:

    items.forEach {
        // do something with `$0.code` ...
    }
    

    【讨论】:

      【解决方案2】:

      好的,我自己找到了解决方案:)

      let codes = items.map { $0.code }
          for code in codes {
              CryptoDataCall.init().dataUpdate("\(code)")
          }
      

      【讨论】:

      • 正确,但它需要一个包含所有代码的附加数组。
      • @MartinR 还不够 codes 数组吗?我的解决方案现在可以正常工作
      • 正如我所说,您的解决方案是正确的 (+1)。但是可以不用额外的codes 数组。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 2018-01-29
      • 2020-08-16
      • 1970-01-01
      • 2020-11-21
      • 1970-01-01
      • 2021-10-30
      相关资源
      最近更新 更多