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
        }
        
    }
    

      

  • 相关阅读:
    java 集合类 *****
    Vector & ArrayList Hashtable & HashMap ArrayList & LinkedList
    全排列 递归实现
    JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比
    数据库之“视图”
    Qt开发经验小技巧1-10
    Qt编写安防视频监控系统14-本地回放
    Qt编写安防视频监控系统13-视频存储
    Qt编写图片及视频TCP/UDP网络传输
    Qt编写气体安全管理系统29-跨平台
  • 原文地址:https://www.cnblogs.com/rubick/p/3789846.html
Copyright © 2011-2022 走看看