1

iTunes検索APIからプレビューリンクを取得しようとしています。ボタンがクリックされたときに情報を取得する関数がありますが、関数が呼び出されていません。結果配列の最初のオブジェクトのプレビュー リンクを取得したいのですが、どうすれば修正できますか?ここに画像の説明を入力

var d: NSMutableData = NSMutable Data()

var tData: NSArray = NSArray() 

func ctn(receivedResponse: NSURLConnection!, receivedResponse response:  NSURLResponse!) {
// clear out the data object if a new request was received.
self.d = NSMutableData()
}

func ctn(ctn: NSURLConnection!, receivedData d: NSData!) {
  self.d.appendData(d)
}
func ctnFinishedLoading(ctn: NSURLConnection!) throws {
var err: NSError
var jResult: NSDictionary = try NSJSONSerialization.JSONObjectWithData(d, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
if jResult.count>0 && jResult["results"]!.count>0 {
    var results: NSArray = jResult["results"]as! NSArray
    self.tData = results
    print(tData)
    //self.appsTableView.reloadData()
}

   }


func playit(sender: UIButton!) {



let cell = table.dequeueReusableCellWithIdentifier("cell")

let playButtonrow = sender.tag

print(ret[playButtonrow])

let searchTerm: String = ret[playButtonrow]

let itunesSearchTerm = searchTerm.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)

  if let escapedSearchTerm = itunesSearchTerm.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {
let urlPath = "https://itunes.apple.com/search?term=\(escapedSearchTerm)&media=music"
let url: NSURL = NSURL(string: urlPath)!
let request: NSURLRequest = NSURLRequest(URL: url)
let ctn: NSURLConnection = NSURLConnection(request: request, delegate: self, startImmediately: false)!


print("Search iTunes API at URL \(url)")

ctn.start()



}
4

1 に答える 1

1

previewUrl を取得する方法は、単一の結果配列メンバー (インデックス 0 を持つ最初のメンバーなど) の値を取得してから、previewUrl キーの値を取得することです。例えば:

if jResult.count>0 && jResult["results"]!.count>0 {
    var results: NSArray = jResult["results"]as! NSArray

    if let previewUrl = results[0]["previewUrl"] {
        print(previewUrl!)
    }
}

NSURLConnectionは iOS 9 で非推奨になったため、iTunes API から previewUrls を取得する方法も紹介NSURLSessionします。

let urlPath = "https://itunes.apple.com/search?term=\(escapedSearchTerm)&media=music"
let url: NSURL = NSURL(string: urlPath)!
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) -> Void in
    do {
        if let dict: NSDictionary = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
        {
            // The search is complete.
            for result in dict["results"] as! NSArray {
                if let previewUrl = result["previewUrl"] {
                    print(previewUrl!)
                }
            }
        }
    } catch let jsonError as NSError {
        // Handle error.
    }
}
task.resume()
于 2015-11-07T05:27:11.257 に答える