Apple рд╕реНрд╡рд┐рдлреНрдЯ рдкрд░ IOS8 рдРрдк рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ

рд▓реЗрдЦ рд▓реЗрдЦ рдХреА рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рд╣реИ " рд╕реНрд╡рд┐рдлреНрдЯ рд╕реЗ рдорд┐рд▓реЛ! " рд╣реЗрд▓реЗрдЯрд╛ рджреНрд╡рд╛рд░рд╛ , рд╕рд╛рде рд╣реА рд╕реНрд╡рд┐рдлреНрдЯ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдкрд╛рд░реНрдЯ 2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓реЗрдЦ рдЖрдИрдУрдПрд╕ рдПрдкреНрд╕ рдбреЗрд╡рд▓рдкрд┐рдВрдЧ рдХрд╛ рдПрдХ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рджред







рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рд╕рд░рд▓ рдПрдХрд▓ рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рдЦрд╛ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЗрд╕ рдмрд╛рд░ рд╣рдо рдереЛрдбрд╝реА рдЧрд╣рд░рд╛рдИ рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдХреБрдЫ рдФрд░ рдорд╣рддреНрд╡рд╛рдХрд╛рдВрдХреНрд╖реА рдЪреАрдЬреЗрдВ рдХрд░реЗрдВрдЧреЗред рд╣рдо iTunes рдЦреЛрдЬ API рдкрд░ рдЬрд╛рдПрдВрдЧреЗ, JSON рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВрдЧреЗ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВрдЧреЗред

рдкрд╣рд▓реА рдирдЬрд╝рд░ рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдм рдмрд▓реНрдХрд┐ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдмрд╣реБрдд рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рдм рдХреБрдЫ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рд░рд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡рд╛рднрд┐рдорд╛рдиреА iOS рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



рд╣рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдХреЗ рд╕рд╛рде рдПрдХрд▓ рджреГрд╢реНрдп рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рд╣рдо рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджреЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдХрд╛рдлреА рд╕рд░рд▓ рд░реВрдк рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред



рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдиреЗрдХреНрд╢рди



рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЯреЗрдмрд▓ рд╡реНрдпреВ рдХреЛ рдПрдХ рдкреЙрдЗрдВрдЯрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо ViewController.swift рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рддреБрд░рдВрдд рдХреНрд▓рд╛рд╕ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ (рдХреНрд▓рд╛рд╕ ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {) рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ:

@IBOutlet var appsTableView : UITableView
      
      





рдпрд╣ рд╣рдореЗрдВ рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдореЗрдВ рдЯреЗрдмрд▓ рд╡реНрдпреВ рдХреЛ "appsTableView" рдЪрд░ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред

рд╣рдо рд╕реНрдЯреЛрд░реАрдмреЛрд░реНрдб рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдирд┐рдпрдВрддреНрд░рдг рд╡рд╛рд▓реЗ рд╡реНрдпреВ рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд░реНрд╕рд░ рдХреЛ рдЯреЗрдмрд▓ рд╡реНрдпреВ рддрдХ рдЦреАрдВрдЪрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рдпреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓рд┐рдВрдХ рд╣реЛрддреЗ рд╣реИрдВред рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдЖрдЙрдЯрд▓реЗрдЯ рдореЗрдиреВ рдореЗрдВ, "appsTableView" рдЪреБрдиреЗрдВред





рдЕрдиреБрд░реЛрдз рдПрдкреАрдЖрдИ рдирд┐рд╖реНрдкрд╛рджрди



рдЕрдм, рд╣рдордиреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

ViewController.swift рдореЗрдВ ViewController рдХреНрд▓рд╛рд╕ рдХреЗ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдЕрдВрджрд░ рдлрд╝рд╛рдЗрд▓, searchItunesFor (searchTerm: String) рдлрдВрдХреНрд╢рди рдмрдирд╛рдПрдБред

 func searchItunesFor(searchTerm: String) { //  The iTunes API          "+",      . var itunesSearchTerm = searchTerm.stringByReplacingOccurrencesOfString(" ", withString: "+", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil) //  ,      URL-friendly var escapedSearchTerm = itunesSearchTerm.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) var urlPath = "https://itunes.apple.com/search?term=\(escapedSearchTerm)&media=software" var url: NSURL = NSURL(string: urlPath) var session = NSURLSession.sharedSession() var task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in println("Task completed") if(error) { println(error.localizedDescription) } var err: NSError? var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary if(err?) { println(error.localizedDescription) } var results: NSArray = jsonResult["results"] as NSArray dispatch_async(dispatch_get_main_queue(), { self.tableData = results self.appsTableView.reloadData() }) }) task.resume() }
      
      







рдХреНрд░рдо рдореЗрдВ рдЪрд▓рддреЗ рд╣реИрдВред

рд╣рдо рдЕрдкрдиреА рдЦреЛрдЬ рдХреНрд╡реЗрд░реА рдХреЛ рд╕рд╣реА рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдПрдкреАрдЖрдИ "рдлрд░реНрд╕реНрдЯ + рд╕реЗрдХрдВрдб + рдерд░реНрдб + рд╡рд░реНрдбреНрд╕" рдлреЙрд░реНрдо рдХрд╛ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп "рдлрд░реНрд╕реНрдЯ% 20 рд╕реЗрдХреЗрдВрдб% 20 ..."ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо NSString рдореЗрдВ рдЙрдкрд▓рдмреНрдз stringByReplacingOccurencesOfString рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ "+" рдХреЗ рд╕рд╛рде рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рд╣рдо рдЙрди рд╡рд░реНрдгреЛрдВ рд╕реЗ рдкрд░рд┐рдгрд╛рдореА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рд╛рдл рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ URL рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред

рдЕрдЧрд▓реА рджреЛ рдкрдВрдХреНрддрд┐рдпрд╛рдБ NSURL рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреАрдЖрдИ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЖрдЗрдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:

 var session = NSURLSession.sharedSession() var task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
      
      





рдкрд╣рд▓рд╛ рдорд╛рдирдХ NSURLSession рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рджреВрд╕рд░рд╛ рдПрдХ рдХрд╛рд░реНрдп рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИред

рдЕрдВрдд рдореЗрдВ, рд▓рд╛рдЗрди task.resume () рдЕрдиреБрд░реЛрдз рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред



рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рддреИрдпрд╛рд░реА рдХрд░ рд░рд╣рд╛ рд╣реИ



рд╣рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рдорд┐рд▓реА, рдЬрд┐рд╕реЗ рдЬрдм рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдИрдЯреНрдпреВрдиреНрд╕ рдореЗрдВ рдПрдХ рдЦреЛрдЬ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ ViewController рдореЗрдВ viewDidLoad рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЗрд╕реЗ рдбрд╛рд▓реЗрдВред

 override func viewDidLoad() { super.viewDidLoad() searchItunesFor("Angry Birds") }
      
      





рдЕрдм, рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЦреЛрдЬ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSMutableData рдЙрджрд╛рд╣рд░рдг рдФрд░ NSArray рд╕рд░рдгреА рдЬреЛрдбрд╝реЗрдВрдЧреЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ViewController рд╡рд░реНрдЧ рдХреЗ рдЖрд░рдВрдн рдХреЗ рдЕрдВрджрд░), рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, @IBOutlet рд╕реВрдЪрдХ var appsTableView: UITableView рдХреЗ рддреБрд░рдВрдд рдмрд╛рджред

 var data: NSMutableData = NSMutableData() var tableData: NSArray = NSArray()
      
      





рдЕрдм, рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ NSURLConnection рд╣рдорд╛рд░реА рдХрдХреНрд╖рд╛ рдореЗрдВ рднреЗрдЬреЗрдЧрд╛ред рдЪреВрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ, NSURLConnection рд╕реЗ рдХрд┐рд╕реА рднреА рдЬрд╛рдирдХрд╛рд░реА рдХреЛ NSURLConnectionDataDelegate рдФрд░ NSURLConnectionDelegate рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╡рд┐рдзрд┐рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, ViewController рдХреЗ рдЖрд░рдВрдн рдореЗрдВ, рд╣рдо NSURLConnectionDelegate, NSURLConnectionDataDelegate рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:

 class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, NSURLConnectionDelegate, NSURLConnectionDataDelegate {
      
      







рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ



рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

 func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) { self.data = NSMutableData() } func connection(connection: NSURLConnection!, didReceiveData data: NSData!) { self.data.appendData(data) } func connectionDidFinishLoading(connection: NSURLConnection!) { var err: NSError var jsonResult: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary if jsonResult.count>0 && jsonResult["results"].count>0 { var results: NSArray = jsonResult["results"] as NSArray self.tableData = results self.appsTableView.reloadData() } }
      
      





рдЬрдм NSURLConnection рдХреЛ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ DidReceiveResponse рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдирдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП self.data = NSMutableData () рд▓рд┐рдЦрдХрд░, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рддреЛ рдмрд╕ рдЕрдкрдирд╛ рдбреЗрдЯрд╛ рдбрдВрдк рдХрд░рддреЗ рд╣реИрдВред

рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо didReceiveData рдкрджреНрдзрддрд┐ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рддрд░реНрдХ рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдбреЗрдЯрд╛ рд╣реИ: NSData, рдЬрд╣рд╛рдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╡рд╣ рд╕реНрдерд┐рдд рд╣реИред рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╕рднреА рднрд╛рдЧреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рдКрдкрд░ рдмрдирд╛рдИ рдЧрдИ self.data рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред

рдЕрдВрдд рдореЗрдВ, рдЬрдм рд╣рдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдХрдиреЗрдХреНрд╢рдирдбреАрдбрд┐рдлрд┐рд╢рд▓реЛрдбрд┐рдВрдЧ рд╡рд┐рдзрд┐ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рд╣рдо рдкрд╣рд▓реЗ рд╣реА рдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╣рдо рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ рдХреЛ рдЙрдкрдпреЛрдЧреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП NSJSONSerialization рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ NSDictionary рд╢рдмреНрджрдХреЛрд╢ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

рдЕрдм рдЬрдм рд╣рдордиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ iTunes рд╕реЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реА рд╣реИ, рддреЛ "рдкрд░рд┐рдгрд╛рдо" рдХреБрдВрдЬреА рдХреА рдПрдХ рд╕рд░рд▓ рдЬрд╛рдВрдЪ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдЧреА рдХрд┐ рд╣рдореЗрдВ рд╡рд╣реА рдорд┐рд▓рд╛ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЙрдореНрдореАрдж рдереА, рдЗрд╕рд▓рд┐рдП рд╣рдо рдкрд░рд┐рдгрд╛рдо рдХреЗ рд▓рд┐рдП self.tableData рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╡рд┐рдзрд┐ рдХрд╛ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддрд╛рд▓рд┐рдпрд╛рдБ appTableView.reloadData () рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред



рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ рдпреВрдЖрдИ рдЕрдкрдбреЗрдЯ



рдкрд╣рд▓реЗ рд▓реЗрдЦ рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рджреГрд╢реНрдп рдХреЛ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА: рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реЗ рдиреЗ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдФрд░ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред

рд╣рдо рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирдИ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВрдЧреЗред

 func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int { return tableData.count } func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestCell") var rowData: NSDictionary = self.tableData[indexPath.row] as NSDictionary cell.text = rowData["trackName"] as String //    artworkUrl60       var urlString: NSString = rowData["artworkUrl60"] as NSString var imgURL: NSURL = NSURL(string: urlString) //      NSData      var imgData: NSData = NSData(contentsOfURL: imgURL) cell.image = UIImage(data: imgData) //      formattedPrice      subtitle var formattedPrice: NSString = rowData["formattedPrice"] as NSString cell.detailTextLabel.text = formattedPrice return cell }
      
      





рдирдВрдмрд░рдСрдлрд╝рд░реЛрдЬрд╝рдЗрдирд╕реЗрдХреНрд╢рди рдлрд╝рдВрдХреНрд╢рди рдЕрдм рдХреЗрд╡рд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред

CellForRowAtIndexPath рдлрд╝рдВрдХреНрд╢рди рдкрдВрдХреНрддрд┐ рд╕рдВрдЦреНрдпрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдирд╛рдо, рдЙрд╕рдХрд╛ рдХрд╡рд░ рдФрд░ рдорд╛рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдХреБрдЫ "рдЕрдВрддрд░рд╛рд▓" рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╣рдордиреЗ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдзреНрдпрд╛рди рджреЗрдВрдЧреЗред



рдкреБрдирд╢реНрдЪ: рдореЗрд░реЗ рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╡рд┐рдореЛрдЪрди рдХреЗ рдмрд╛рдж, рд▓реЗрдЦрдХ рдиреЗ рдХреБрдЫ рд╣рдж рддрдХ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдкрд╛рда рдХреЛ рдХреБрдЫ рд╣рдж рддрдХ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ред рдореИрдВрдиреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рд▓рд╛рдЗрди рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред



All Articles