尽管在iOS9 swift中使用了正确的声明语法,仍然使用未解析的标识符问题

时间:2015-12-02 05:27:43

标签: ios json swift

我正在开发一个程序来使用swift中的JSON解析数据。我写了以下代码 -

class ViewController: UIViewController {

    var arrDict :NSMutableArray=[]
    @IBOutlet weak var jsontblvw: UITableView!

    override func viewDidLoad()
    {
        super.viewDidLoad()
        jsonparsingfromurl()
    }

    func jsonparsingfromurl()
    {
      let url = NSURL(string: "http://theappguruz.in//Apps/iOS/Temp/json.php")
      let request = NSURLRequest(URL: url!)
      NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) { 
        (response, data, error) in
          startParsing(data!)
      }
    }

    func startParsing(data : NSData)
    {
        let dict : NSDictionary!=(try! NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers)) as! NSDictionary
        for var i=0 ; i < (dict.valueForKey("MONDAY") as! NSArray).count ; i++
        {
          arrDict.addObject((dict.valueForKey("MONDAY") as! NSArray) .objectAtIndex(i))
        }    
    }

}

当我尝试写行arrDict.addObject((dict.valueForKey("MONDAY") as! NSArray) .objectAtIndex(i))时,它总是抛出一个&#34;使用未解析的标识符arrDict&#34;的错误。尽管我已经正确地声明了数组,但它为什么显示呢?

2 个答案:

答案 0 :(得分:0)

看起来函数startParsing是在ViewController范围之外声明的,因此它无法访问该类的属性。你的意思是在结束大括号内声明这些函数吗?

答案 1 :(得分:0)

答案很简单,因为我在类的接口之外声明并使用该函数,这就是为什么它没有访问特定类的属性。