2016-12-03 3 views
-3

APIKit을 사용하여 iTunes API로 노래 정보를 획득하고 Realm에 저장하고 싶습니다. 그러나 다음 코드를 사용하는 "개체"유형은 모두입니다. 요소를 추출하는 방법을 모르겠습니다. 결과는 다음과 같습니다.APIKit을 사용하여 iTunes API에서 노래 정보를 얻고 싶습니다.

{ 
    resultCount = 10; 
    results =  (
       { 
      artistId = 298496035; 
      artistName = "\U30a2\U30f4\U30a3\U30fc\U30c1\U30fc"; 
      artistViewUrl = "https://itunes.apple.com/jp/artist/avu-ichi/id298496035?uo=4"; 
      artworkUrl100 = "http://is1.mzstatic.com/image/thumb/Music4/v4/0e/c9/c8/0ec9c862-abdd-8827-9b0d-c30443a88e86/source/100x100bb.jpg"; 
・・・ 

이 출력 결과에서 노래 정보의 요소를 추출하는 방법을 알려주십시오.

import APIKit 

protocol iTunesRequest: Request { 
} 

extension iTunesRequest { 
    var baseURL: URL { 
     return URL(string: "http://itunes.apple.com")! 
    } 
} 

struct GetSearchRequest: iTunesRequest { 
    typealias Response = [Song]  
    var method: HTTPMethod { 
    return .get 
    } 
    let term: String 
    init(term: String) { 
     self.term = term 
    } 

    var path: String { 
     return "/search" 
    } 

    var parameters: Any? { 
     return [ 
      "term": term, 
      "limit": 10, 
      "country": "jp", 
      "media": "music", 
      "lang": "ja_jp" 
     ] 
    } 

    func response(from object: Any, urlResponse: HTTPURLResponse) throws -> Response { 
     var Songs = [Song]() 

     print(object) 

     if let dictionaries = object as? [NSDictionary] { 
      print(dictionaries) 
      for dictionary in dictionaries { 
       print(dictionary) 
       let song = Song() 
       song.itunesId = dictionary["trackId"] as! Int 
       song.title = dictionary["trackName"] as! String 
       song.artwork = dictionary["artworkUrl100"] as! String 
       song.artist = dictionary["artistName"] as! String 
       song.album = dictionary["collectionName"] as! String 
       song.trackSource = dictionary["previewUrl"] as! String 
       Songs.append(song) 
      } 
     } 
     return Songs 
    } 
} 

답변

0

먼저 응답 JSON을 구문 분석해야합니다.

영역은 JSON을 직접 지원하지 않지만, NSJSONSerialization.JSONObjectWithData(_:options:)의 출력을 사용하여 JSON의 객체를 추가 할 수 있습니다. 생성 된 KVC 호환 객체는 객체 생성 및 업데이트를위한 표준 API를 사용하여 객체를 추가/업데이트하는 데 사용할 수 있습니다.

은 자세히에서 https://realm.io/docs/swift/latest/#json