2014-09-17 2 views
0

here 샘플을 사용하여 온라인 JSON 파일을 읽으려고합니다. 내가 그것을 실행할 때를 제외하고는 아주 똑바로 보인다. 그것은 dataTaskWithURL 호출에 실패하고 error.localizedDescription은 "작업을 완료 할 수 없습니다. (NSURLErrorDomain -1005.)"오류 코드를 찾았으며 NSURLErrorNetworkConnectionLost를 참조하지만 인터넷에 연결되어 있고 시도 할 때 브라우저의 동일한 URL에 JSON 결과가 표시됩니다.온라인으로 JSON 파일 읽기

func searchItunes() { 
    let urlPath = "http://itunes.apple.com/search?term=JQ+Software&media=software" 
    let url: NSURL = NSURL(string: urlPath) 
    let session = NSURLSession.sharedSession() 
    let task = session.dataTaskWithURL(url, completionHandler: { 
     data, response, error in 
     if(error != nil) { 
      println(error.localizedDescription) 
     } 
     else { 
      var err: NSError? 
      var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary 
      if(err != nil) { 
       println("JSON Error \(err!.localizedDescription)") 
      } 
      else { 
       // process data here. 
      } 
     } 
    }) 
    task.resume() 
} 
+1

컴파일시 문제는 없지만 런타임 문제는 언급하지 않았으므로 구문 붙여 넣기 문제로 구문 오류가 발생했다고 가정합니다. 어쨌든 지금있는 곳을 시도하고 AlBlue의 대답을 기록하십시오. 패치 된 버전은 나를 위해 놀이터에서 예상대로 작동합니다. –

답변

0

위의 붙여 넣기에는 else 블록에 추가} 및 아래에 추가}가 있습니다. 그것으로 나는 위의 것을 성공적으로 수행 할 수 있습니다. 대괄호가 코드에서 일치하면 브라우저에서 사용 중이지만 신속하게 실행되지 않는 중개 프록시가있을 수 있으며 그 반대의 경우도 변경 사항을 발생시킵니다.

백그라운드 스레드가 해결하는 데 약간의 시간이 걸리므로 스레드가 백그라운드에서 다운로드를 완료하기 전에 프로그램이 종료되면 아무 것도 볼 수 없습니다.

0

나는 iOS 시뮬레이터를 사용하고 있었는데 내 랩탑이 인터넷에 연결되었지만 시뮬레이터는 시스템 환경 설정 \ 네트워크의 서비스 순서가 아니기 때문에 Wi-Fi가 맨 위에 있다는 것을 깨달았다. 외관상으로는, 시뮬레이터는 실제로 연결되는 첫번째 장치를 찾아 내지 않는! 그래서 서비스를 재주문 했으므로 이제는 코드가 잘 작동합니다.

-3
//this is swift program 
struct Stack<Element>{ 
var brackets = [Element]() 
mutating func push(bracket:Element){ 
    brackets.append(bracket) 
} 
mutating func pop() -> Element{ 
return brackets.removeLast() 
} 
} 


var stackOfCharacter = Stack<String>() 
var arrayCharacter: [String] = ["[","(",")","]"] 
for symbol in arrayCharacter{ 
if symbol == "{" { 
stackOfCharacter.push(bracket: symbol) 

} 
else if symbol == "[" { 
    stackOfCharacter.push(bracket:symbol) 
} 
else if symbol == "(" { 
    stackOfCharacter.push(bracket:symbol) 
} 

else if symbol == "}"{ 

if stackOfCharacter.brackets.count != 0 { 
var topItem = stackOfCharacter.brackets[stackOfCharacter.brackets.count - 1] 

if topItem == "{" { 
    var element = stackOfCharacter.pop() 
} 
} 
} 
else if symbol == ")" { 
if stackOfCharacter.brackets.count != 0 { 
var topItem = stackOfCharacter.brackets[stackOfCharacter.brackets.count - 1] 

if topItem == "(" { 
    var element = stackOfCharacter.pop() 
} 
} 
} 

else if symbol == "]" { 
    if stackOfCharacter.brackets.count != 0 { 
var topItem = stackOfCharacter.brackets[stackOfCharacter.brackets.count - 1] 

if topItem == "[" { 
    var element = stackOfCharacter.pop() 
} 
} 
} 
else { 
    stackOfCharacter.push(bracket:symbol) 
} 
} 
var count = stackOfCharacter.brackets.isEmpty 
if count { 
    print ("valid ") 
} 
else { 
    print ("Invalid") 
}