zoukankan      html  css  js  c++  java
  • swift 学习笔记(1)--- 运行环境

    1. 下载xcode6 beta版

    链接: http://pan.baidu.com/s/1o6kFu0U 密码: i7mm

    大家不要怕,xcode 5 和xcode 6 是可以共存的。

    2.  创建共存

    1. Choose File > New > Project > (iOS or OS X) > Application > your template of choice.

    此处选择 Single view Application。

          2. Click the Language pop-up menu and choose Swift

      3. 上代码:   一样的用法,只不过语法不一样

      4.  运行okay

    class XHNewsTableViewController : UITableViewController {
        var dataSource = []
        
        var thumbQueue = NSOperationQueue()
        
        let hackerNewsApiUrl = "http://qingbin.sinaapp.com/api/lists?ntype=%E5%9B%BE%E7%89%87&pageNo=1&pagePer=10&list.htm"
        
        override func awakeFromNib() {
            super.awakeFromNib()
        }
        
        override func viewDidLoad() {
            super.viewDidLoad()
            // Do any additional setup after loading the view, typically from a nib.
            
            let refreshControl = UIRefreshControl()
            refreshControl.attributedTitle = NSAttributedString(string: "下拉刷新")
            refreshControl.addTarget(self, action: "loadDataSource", forControlEvents: UIControlEvents.ValueChanged)
            self.refreshControl = refreshControl
        }
        
        override func viewDidAppear(animated: Bool) {
            super.viewDidAppear(animated)
            loadDataSource();
        }
        
        override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }
        
        func loadDataSource() {
            self.refreshControl.beginRefreshing()
            var loadURL = NSURL.URLWithString(hackerNewsApiUrl)
            var request = NSURLRequest(URL: loadURL)
            var loadDataSourceQueue = NSOperationQueue();
            
            NSURLConnection.sendAsynchronousRequest(request, queue: loadDataSourceQueue, completionHandler: { response, data, error in
                if error {
                    println(error)
                    dispatch_async(dispatch_get_main_queue(), {
                        self.refreshControl.endRefreshing()
                        })
                } else {
                    let json = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary
                    let newsDataSource = json["item"] as NSArray
                    dispatch_async(dispatch_get_main_queue(), {
                        self.dataSource = newsDataSource
                        self.tableView.reloadData()
                        self.refreshControl.endRefreshing()
                        })
                }
                })
        }
        
        // #pragma mark - Segues
        override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
            if segue.identifier == "showWebDetail" {
    //            let indexPath = self.tableView.indexPathForSelectedRow()
    //            let object = dataSource[indexPath.row] as NSDictionary
    //            (segue.destinationViewController as XHWebViewDetailController).detailID = object["id"] as NSInteger
            }
        }
    
        
        // #pragma mark - Table View
        
        override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            return 1
        }
        
        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            return dataSource.count
        }
        
        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCellWithIdentifier("XHNewsCell", forIndexPath: indexPath) as UITableViewCell
            
            let object = dataSource[indexPath.row] as NSDictionary
            
            cell.textLabel.text = object["title"] as String
            cell.detailTextLabel.text = object["id"] as String
            cell.imageView.image = UIImage(named :"cell_photo_default_small")
            cell.imageView.contentMode = UIViewContentMode.ScaleAspectFit
            
            let request = NSURLRequest(URL :NSURL.URLWithString(object["thumb"] as String))
            NSURLConnection.sendAsynchronousRequest(request, queue: thumbQueue, completionHandler: { response, data, error in
                if error {
                    println(error)
                    
                } else {
                    let image = UIImage.init(data :data)
                    dispatch_async(dispatch_get_main_queue(), {
                        cell.imageView.image = image
                        })
                }
                })
            
            
            return cell
        }
        
        override func tableView(tableView: UITableView!, heightForRowAtIndexPath indexPath: NSIndexPath!) -> CGFloat {
            return 80
        }
        
    }
    

      

  • 相关阅读:
    Realtime crowdsourcing
    maven 常用插件汇总
    fctix
    sencha extjs4 command tools sdk
    首次吃了一颗带奶糖味的消炎药,不知道管用不
    spring mvc3 example
    ubuntu ati driver DO NOT INSTALL recommand driver
    yet another js editor on windows support extjs
    how to use springsource tools suite maven3 on command
    ocr service
  • 原文地址:https://www.cnblogs.com/rubick/p/3789846.html
Copyright © 2011-2022 走看看