開発メモ decoration company

株式会社デコレーションカンパニーの開発メモを記録していきます。

Newsアプリコード全文

ViewController.swift

import UIKit

class ViewController: UITableViewController {
    
    var urlString = "http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&q=http://rss.dailynews.yahoo.co.jp/fc/rss.xml&num=10"
    
    var entryData = NSArray()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.readData()
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return entryData.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = tableView.dequeueReusableCellWithIdentifier("news") as UITableViewCell
        var entry = entryData[indexPath.row] as NSDictionary
        
        cell.textLabel.text = entry["title"] as? String
        
        
        return cell
    }
    
    override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
        performSegueWithIdentifier("detail", sender: entryData[indexPath.row])
    }
    
    
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
        if segue.identifier == "detail"{
        
            var detailViewController = segue.destinationViewController as DetailViewController
            detailViewController.entry = sender as NSDictionary
            
        }
        
    }
    
    func readData(){
        var url = NSURL(string: urlString)
        
        //NSURLSessionでダウンロードする
        var task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: {data, response, error in
            //JSONデータを辞書に変換する
            var dist = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)as NSDictionary
            
            var responseData  = dist["responseData"]as NSDictionary
            var feed = responseData["feed"]as NSDictionary
            var entries = feed["entries"]as NSArray
            self.entryData = entries
            
            
            dispatch_async(dispatch_get_main_queue(), {
            self.tableView.reloadData()
            })
            
        })
        task.resume()
    }
    

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

DetailViewController.swift

//
import UIKit

class DetailViewController: UIViewController {
    @IBOutlet weak var webView: UIWebView!

    var entry = NSDictionary()
    
    override func viewDidLoad() {
        super.viewDidLoad()

        var url = NSURL(string: self.entry["link"] as String)
        var request = NSURLRequest(URL: url!)
        webView.loadRequest(request)
        
        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}