2017-02-03 2 views
2

I는 현재 사용자 객체의 배열이사용자 정의 객체의 배열을 문자열 배열로 변환하는 방법은 무엇입니까?

[GenrePosters]과 같이 정의된다

:

:이 보이는 콘솔에 프린트

public struct GenrePosters: Decodable, Equatable{ 

    public let poster : String 

    public init? (json: JSON) { 

    guard let poster: String = "poster_path" <~~ json 
     else {return nil} 
    self.poster = poster 
    } 

    public static func ==(lhs: GenrePosters, rhs: GenrePosters) -> Bool { 
    return lhs.poster == rhs.poster 
    } 

[MyMovieGuide.GenrePosters (포스터 :(210) "/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg"), MyMovieGuide.GenrePosters (포스터 : "/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg"), MyMovieGuide.GenrePosters (포스터 : "/tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg")]

내가하려고 해요

[ "/e1mjopzAS2KNsvpbpahQ1a6SkSn.jpg" "/jjBgi2r5cRt36xF6iNUEhzscEcb.jpg" "/tIKFBxBZhSXpIITiiB5Ws8VGXjt.jpg"]

이 좋아 만 포스터 값 문자열 배열로 GenrePosters 배열 변환

도움이 될 것입니다!

+1

[객체 배열에서 속성 값의 배열을 가져 오기]의 사용 가능한 복제 (http://stackoverflow.com/questions/를 28393334/객체 배열로부터 속성 값 배열 얻기) – Hamish

답변

4

당신이 사용 map(_:) 방법을 수행 할 수 있어야한다 :

let posters = posterList.map {$0.poster} 
+0

'let posters = posterList.map ($ 0.poster)'는 어떨까요? gp.poster와는 다른가요? – rmaddy

+0

@rmaddy 그게 더 낫 네, 고마워! – dasblinkenlight

0
public struct GenrePosters: Decodable, Equatable{ 

    public let poster : String 

    public init? (json: JSON) { 

     guard let poster: String = "poster_path" <~~ json 
      else {return nil} 
     self.poster = poster 
    } 

    public static func ==(lhs: GenrePosters, rhs: GenrePosters) -> Bool { 
     return lhs.poster == rhs.poster 
    } 
} 

let genrePostersArray = [GenrePosters(poster: "one"), GenrePosters(poster: "two"), GenrePosters(poster: "three")] 
let genrePostersStringArray = genrePostersArray.flatMap { $0.poster } 
print(genrePostersStringArray) // ["one", "two", "three"] 
+0

변환의 결과가 옵션이 아니므로'flatMap (_ :)'이 필요 없으므로 대신 map (_ :)을 사용할 수 있습니다. – Hamish

관련 문제