リクエストは2つあります。最初の要求はintの配列を返します。 intの配列内のオブジェクトは一意です。つまり、intに関連付けられた文字列値を持ちます。キーの値を取得するには、もう一度リクエストする必要があります。 2番目のURLリクエストには、最初のURLからのint配列の値があります。私は以下のSWIFT 3.を使用してURLリクエストを作成しようとしています (第URLリクエスト)がコードです:私は、何が起こっている genreLabel.text = "\(fetchMovieGenres(result?.genreIds)!)"
文字列と配列の配列を返すUILabel - Swift 3
されています。私はこれをやっているviewDidLoad()
で
func fetchMovieGenres(_ forGenreIds: [Int], callback: @escaping (String) -> Void) {
let params = [ API: APIKey ]
var request = URLRequest(url: urlBuilder.tmdbURLBuilder(params as [String: Any], withPathExtension: MovieGenreList))
request.addValue("application/json", forHTTPHeaderField: "Accept")
let task = urlBuilder.session.dataTask(with: request) {(data, response, error) in
do {
if let data = data, let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: Any], let results = json["genre"] as? [[String:Any]] {
callback(Genre.genreFromResults(results)) // Cannot convert value of type '[Genre]' to expected argument type 'String'
}
} catch {
print("Error parsing JSON: \(error)")
}
}
task.resume()
}
リモートURLから文字列の配列を返して、それをUILabel
に移そうとしています。しかし何らかの理由で、私はそれを達成することができません。
質問がリファクタリングされたコードで更新されました。 'タイプの値' [Genre] 'を予想される引数タイプ' String''に変換できません –
'Genre'からどのような文字列を取得するのか分かりません。あなたは自分でそのビットを書く必要があります。 '[String]'で終わることができれば、 'stringArray.joined(separator:"、 ")'と一緒にそれらを連結することができます。 – IanSabine