두 가지 요청이 있습니다. 첫 번째 요청은 int 배열을 반환합니다. int 배열의 객체는 고유합니다. 의미는 int에 연결된 문자열 값을가집니다. 키 값을 얻으려면 두 번째 요청을해야합니다. 두 번째 URL 요청에는 첫 번째 URL의 int 배열 값이 있습니다. viewDidLoad()
에서문자열 배열 채우기 UILabel - Swift 3
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()
}
나는이 일을 오전 : 내가 무슨 일이 일어나고있다 genreLabel.text = "\(fetchMovieGenres(result?.genreIds)!)"
을 (두 번째 URL 요청이) 나는 다음과 신속 3.를 사용하여 URL 요청을하려고하면 코드 원격 URL에서 문자열 배열을 반환하고 해당 문자를 UILabel
에 채우려 고합니다. 그러나 어떤 이유로 나는 그것을 성취 할 수 없다.
질문을 리팩터링 한 코드로 업데이트했습니다. '예상되는 인수 유형'String '으로'유형 값 '[Genre]'을 변환 할 수 없습니다. –
'Genre'에서 원하는 문자열을 얻는 방법을 모르겠습니다. . 너 혼자 그 비트를 써야 해. '[String]'으로 끝날 수 있다면'stringArray.joined (separator : ",")'와 함께 연결할 수 있습니다. – IanSabine