2016-06-08 2 views
0

이 문제를 해결할 수 없습니다. 행이라는 변수가 있지만 신속한 변수가 표시되지 않습니다. 오류가해결되지 않은 식별자 오류 신속한

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    let url = NSURL(string: "http://www.mertbarutcuoglu.com/?json=get_posts")! 

    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in 

     if let urlContent = data { 

      do { 

       let jSonData = try NSJSONSerialization.JSONObjectWithData(urlContent, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary 
       let posts = jSonData["posts"] as? NSArray 

       let row = Int(posts!.count) 
      } catch {} 
     } 
    } 

    task.resume() 


    return row.count 
} 
+0

알아두면 들여 쓰기를 할 수 있습니다. 'guard let urlContent = data else {/ * handle else case * /}' – Alexander

답변

3

해결되지 않은 식별자이 당신의 사소한 문제 ""행 "해결되지 않은 식별자의 사용"입니다. 이 코드는 NEVER 값을 반환합니다.
numberOfRowsInSection에서 비동기 메서드를 사용할 수 없습니다.

viewDidLoad에 데이터를 검색하는 코드를 입력하고 numberOfRowsInSection 개의 게시물 만 반환하십시오.

그리고 빠른 네이티브 컬렉션 유형을 사용하십시오.

var posts = [[String:AnyObject]]() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    let url = NSURL(string: "http://www.mertbarutcuoglu.com/?json=get_posts")! 
    let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in 
     if error == nil { 
      do { 
       let jSonData = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as! [String:AnyObject] 
       posts = jSonData["posts"] as! [[String:AnyObject]] 
       self.tableView.reloadData()     
      } catch let error as NSError{ 
       print(error) 
      } 
     } else { 
      print("NSURLSession error:", error!) 
     } 
    } 
    task.resume() 
} 


override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return posts.count 
} 
관련 문제