如何从自定义对象的数组中获取特定值?

时间:2017-02-23 18:05:18

标签: arrays swift

我们说我们有一个自定义对象:

public struct PosterData : Decodable {

  public let filePath : String
  public let aspectRatio : NSNumber
  public let height : NSNumber
  public let width : NSNumber

  public init?(json: JSON) {

    guard let filePath : String = "file_path"  <~~ json,
      let aspectRatio : NSNumber = "aspect_ratio" <~~ json,
      let height : NSNumber = "height" <~~ json,
      let width : NSNumber = "width" <~~ json
      else {return nil}

    self.filePath = filePath
    self.aspectRatio = aspectRatio
    self.height = height
    self.width = width
  }

}

我们有一个自定义对象的数组:

var posters:[PosterData] = []

如何遍历数组以检索&#34; filePath&#34;的所有实例?我试过这个:

for poster in posters {

          self.updatePoster(extraPoster:posters[0].filePath)

        }

但它所做的只是给我第一个对象&#34; filepath&#34;在数组而不是其他数组。

2 个答案:

答案 0 :(得分:0)

当您说for poster in posters时,它意味着您将迭代海报,使用poster作为每次迭代的变量。每次移动到新海报时,您都可以使用poster变量访问它。所以你的代码看起来像这样:

for poster in posters {
    self.updatePoster(extraPoster: poster.filePath)
}

答案 1 :(得分:0)

posters.forEach { self.updatePoster(extraPoster: $0.filePath) }