Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class DashboardTableViewController: UITableViewController {
- var userData = [String]()
- var secondUserData = [String]()
- var name: String = ""
- override func viewDidLoad() {
- super.viewDidLoad()
- }
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
- }
- override func didReceiveMemoryWarning() {
- super.didReceiveMemoryWarning()
- // Dispose of any resources that can be recreated.
- }
- /* This function gets the user account information from a JSON in a simple request */
- private func loadUserData(completion: @escaping (_ myArray: [String]) -> Void) {
- let session = Twitter.sharedInstance().sessionStore.session()
- let client = TWTRAPIClient.withCurrentUser()
- let userInfoURL = "https://api.twitter.com/1.1/users/show.json"
- let params = ["user_id": session?.userID]
- var clientError : NSError?
- let request = client.urlRequest(withMethod: "GET", url: userInfoURL, parameters: params, error: &clientError)
- client.sendTwitterRequest(request) { (response, data, connectionError) -> Void in
- if connectionError != nil {
- print("Error: (connectionError)")
- }
- do {
- let json = JSON(data: data!)
- if let userName = json["name"].string,
- let description = json["description"].string,
- let followersCount = json["followers_count"].int,
- let favouritesCount = json["favourites_count"].int,
- let followingCount = json["friends_count"].int,
- let lang = json["lang"].string,
- let nickname = json["screen_name"].string {
- self.userData.append(userName)
- self.userData.append(nickname)
- self.userData.append(String(followersCount))
- self.userData.append(String(followingCount))
- self.userData.append(String("22"))
- self.userData.append(lang)
- self.userData.append(description)
- self.userData.append("No country")
- completion(self.userData)
- }
- }
- }
- }
- /* This closure helps us to fill the labels once the request has been finished in loadUserData */
- func manageUserData(label: UILabel, index: Int) {
- loadUserData {
- (result: [String]) in
- label.text = result[index]
- }
- }
- // MARK: - Table view data source
- override func numberOfSections(in tableView: UITableView) -> Int {
- // #warning Incomplete implementation, return the number of sections
- return 1
- }
- override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- // #warning Incomplete implementation, return the number of rows
- return self.userData.count
- }
- override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let rowNumber = indexPath.row
- let cellIdentifier = "TableViewCell"
- guard let cell = tableView.dequeueReusableCell(withIdentifier: cellIdentifier, for: indexPath) as? TableViewCellController else {
- fatalError("The dequeued cell is not an instance of TableViewCellController.")
- }
- switch rowNumber {
- case 0:
- cell.titlePlaceholder.text = "Name:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 1:
- cell.titlePlaceholder.text = "Nickname:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 2:
- cell.titlePlaceholder.text = "Followers:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 3:
- cell.titlePlaceholder.text = "Following:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 4:
- cell.titlePlaceholder.text = "Tweets:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 5:
- cell.titlePlaceholder.text = "Language:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 6:
- cell.titlePlaceholder.text = "Biography:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- case 7:
- cell.titlePlaceholder.text = "Country:"
- manageUserData(label: cell.valuePlaceholder, index: rowNumber)
- default:
- cell.titlePlaceholder.text = "?"
- cell.valuePlaceholder.text = "?"
- }
- return cell
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement