2016-07-01 6 views
0

swift (2.3)을 사용하고 있으며 내가 만든 변수에 액세스하는 문제가 발생했습니다.범위 외부의 클래스 데이터에 액세스

나는 let.pdf = getData..) 1을 통해, 내 클래스에서 (readableJSON 통해) JSON 데이터를 얻을 수있어 namesArray

의 업데이트 된 내용을 얻으려고 노력하고 2) pfd.getPetData...

해요 그러나 나는 새로 채워진 namesArray을이 "스코프"밖에 다시 공급하는 방법을 알아낼 수 없습니다 (올바른 용어입니까?). super.viewDidLoad 외부로 액세스 할 수 있습니다.

궁극적으로, 나는로 이동 배열의 수를 싶습니다

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return namesArray.count  
} 

다음은 핵심 지역, 분있는 tableView 물건입니다.

import UIKit 
import SwiftyJSON 
class ViewController: UIViewController, UITableViewDelegate { 

    var namesArray = [String]() 
    override func viewDidLoad() { 
     super.viewDidLoad() 

     let pfd = getData() 

     pfd.getPetData { readableJSON in 

      for (key,subJson) in readableJSON[]["data"] { 
       let title = subJson["title"].string! 
       namesArray.append(title) 
      } 
     } 
     print("There are \(self.namesArray.count) items in namesArray now") 
    } 

    class getData { 
     func getPetData(completion: (JSON) ->()) { 
      let url = NSURL(string: "<my_JSON_URL_HERE> 
      let task = NSURLSession.sharedSession().dataTaskWithURL(url) { (data, response, error) -> Void in 
      let readableJSON = JSON(data:data!) 
      completion(readableJSON) 
      } 
      task.resume() 

     } 
    } 

정말 누구나 생각할 것입니다.

답변

0

ViewController에 테이블보기의 IBOutlet을 추가하십시오. 여기에 테이블 뷰를 새로 고침하십시오 :

for (key,subJson) in readableJSON[]["data"] { 
       let title = subJson["title"].string! 
       namesArray.append(title) 
       self.tableView.reloadData() 
      } 
+0

스토리 보드의'TableView'의'IBOutlet'을 클래스에 추가해야합니다. 그래야만 테이블 뷰 작업을 다시로드하고 수행 할 수 있습니다. ' "모호한 참조 회원에게 '의 tableview (_ : numberOfRowsInSection :'"이 추가되면 – Dershowitz123

+0

, 나는 오류 메시지를 받고 있어요 : 내가 말했듯이 –

+0

는 당신이 필요로하는' 는 "자기"를 추가했다 클래스에'TableView'의'IBOutlet'을 추가하십시오. – Dershowitz123

관련 문제