2017-02-23 62 views
-1

比方說,我們有一個自定義對象:如何從自定義對象的數組中獲取特定值?

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] = [] 

我如何可以遍歷數組在檢索「文件路徑」的所有實例?我試過這個:

for poster in posters { 

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

     } 

但它所做的是給我第一個對象的「文件路徑」在數組中,而不是其他人。

+0

'poster.filePath'? – Hamish

+0

這樣做,我應該知道這一點 – SwiftyJD

回答

0

當你說for poster in posters這意味着你將迭代海報,使用poster作爲每個迭代的變量。每當你移動到一個新的海報,你可以通過使用poster變量來訪問它。所以,你的代碼應該是這樣的:

for poster in posters { 
    self.updatePoster(extraPoster: poster.filePath) 
} 
0
posters.forEach { self.updatePoster(extraPoster: $0.filePath) } 
相關問題