iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 7
0
自我挑戰組

白鬍子老頭30天 Swift Ios系列 第 20

Day(7+13) Lecture 9-2 卡關了

  • 分享至 

  • xImage
  •  

百般波折 http://ithelp.ithome.com.tw/upload/images/20170105/201038336vhJHeSsDQ.png
幾個注意事項

  1. framework 要是Swift3的版本
  2. 加入流程先創個workSpace把專案都拉進去,build twitter,把framework拉進smashtag的library
  3. 完成後記得在模擬器登入你的twitter帳號

這專案還有好多地方不懂
http://ithelp.ithome.com.tw/upload/images/20170105/201038333usAnXuCSx.png
這裡不知道為何會出錯
好坎今天

代碼如下

//
//  TableViewController.swift
//  SmashTag
//
//  Created by 大容 林 on 2017/1/4.
//  Copyright © 2017年 JojoSwiftWorkShop. All rights reserved.
//

import UIKit
import Twitter

class TableViewController: UITableViewController {
    
    var tweets = [Array<Twitter.Tweet>](){
        didSet{
            tableView.reloadData()
        }
    }
    var serchText : String? {
        didSet{
            tweets.removeAll()
            searchForTweets()
            title = serchText
        }
    }
    
    private var lastTwitterRequest : TwitterRequest?
    
    private var twitterRequest : TwitterRequest? {
        if let query = serchText , !query.isEmpty{
            return TwitterRequest(search: query + "-filter:retweets",count: 100)
        }
        return nil
    }
    
    private func searchForTweets(){
        if let request = twitterRequest {
            lastTwitterRequest = request
            request.fetchTweets { [weak weakSelf = self] newTweets in
                DispatchQueue.main.async {
//                    if request == weakSelf?.lastTwitterRequest {
                        if !newTweets.isEmpty {
                            weakSelf?.tweets.insert(newTweets, at: 0)
                        }
//                    }
                    weakSelf?.refreshControl?.endRefreshing()
                }
            }
        } else {
            self.refreshControl?.endRefreshing()
        }

    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        serchText = "Swift"
    }
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    
    // MARK: - Table view data source
    
    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return tweets.count
    }
    
    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        return tweets[section].count
    }
    
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "tweet", for: indexPath)
        let tweet = tweets[indexPath.section][indexPath.row]
        cell.textLabel?.text = tweet.text
        cell.detailTextLabel?.text = tweet.user.name

        // Configure the cell...
        
        return cell
    }
}


上一篇
Day(7+12) Lecture 9-1 TableView
下一篇
Day(7+14) Lecture 9 SmashTagDEMO 加入圖片
系列文
白鬍子老頭30天 Swift Ios30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言