2016-07-22 3 views
0

이 프로젝트를 실행하려고하면 "확인되지 않은 식별자 오류가 사용되었습니다."라는 인사가 나타납니다. 여기에 누군가가 도움을 주시기 바랍니다 수해결되지 않은 식별자 오류가 계속 발생합니다. 신속한

 
var jsonDict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) 
as! NSDictionary
 
let task : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in 

      if((error) != nil) { 
       print(error!.localizedDescription) 
      } else { 

       let err: NSError? 
       do { 
       var jsonDict = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary 
       } catch { 
       if(err != nil) { 
        print("JSON Error \(err!.localizedDescription)") 
       } 

       else { 
        //5: Extract the Quotes and Values and send them inside a NSNotification 
        let quotes:NSArray = ((jsonDict.objectForKey("query") as! NSDictionary).objectForKey("results") as! NSDictionary).objectForKey("quote") as! NSArray 
        dispatch_async(dispatch_get_main_queue(), { 
         NSNotificationCenter.defaultCenter().postNotificationName(kNotificationStocksUpdated, object: nil, userInfo: [kNotificationStocksUpdated:quotes]) 

        }) 
        } 
       } 

      } 
     }) 

와 라인에 오류 코드를 얻을 수있다. 고맙습니다.

+0

은 무엇 라인 오류를 얻고있다 (가정 JSON 루트 노드 구조를 가지고있다)? – WMios

+0

예, 어떤 회선이 발생합니까? –

+0

@WMios 방금 오류가있는 곳을 표시하기 위해 코드를 업데이트했습니다 –

답변

0

catch 블록에이 코드 줄이 포함될 수 있습니다.

let quotes:NSArray = ((jsonDict.objectForKey("query") as! NSDictionary).objectForKey("results") as! NSDictionary).objectForKey("quote") as! NSArray 

위의 문장에서 jsonDict은 범위를 벗어났습니다. do 블록에서 jsonDict를 선언했지만 catch 블록에서 사용하려고합니다.

0

코드의이 거미줄은 정확히 SwiftyJSON 라이브러리가 존재합니다. 나는 그것을 매우 추천한다, 그것은 cocoapods를 사용하는 당신의 프로젝트로 수입 될 수있다. 더 읽을

jsonQuery["query"]["results"]["quote"] 

당신이 훨씬 더 빨리, 더 API를 구현할 것이 라이브러리를 생성 된 코드를 사용하여

.

0

시도 후 : -

let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: yourURL) 
     let session = NSURLSession.sharedSession() 
     let task = session.dataTaskWithRequest(urlRequest) { 
      (data, response, error) -> Void in 

      let httpResponse = response as! NSHTTPURLResponse 
      let statusCode = httpResponse.statusCode 

      if (statusCode == 200) { 

       do{ 

        let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) 



        if let queries = json["query"] as? [[String: AnyObject]] { 
          for query in queries { 
           if let quote = query["quote"] as? String { 
             self.quoteArr.append(quote) 
           } 

          }//for loop 
          dispatch_async(dispatch_get_main_queue(),{ 
           // your main queue code 
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationStocksUpdated, object: nil, userInfo: [kNotificationStocksUpdated:quotes]) 
          })//dispatch 

        }// if loop 

       } 
       catch 
       { 
        print("Error with Json: \(error)") 

       } 

      } 
      else 
      { 
       // No internet connection 
       // Alert view controller 
       // Alert action style default 


      } 
관련 문제