我正在尝试使用找到的样本here来阅读在线JSON文件。除非我运行它,它似乎很直接。它一直在dataTaskWithURL调用失败,而error.localizedDescription是"操作无法完成。 (NSURLErrorDomain -1005。)"我查找了错误代码,它引用了NSURLErrorNetworkConnectionLost但我连接到了互联网,当我在浏览器中尝试相同的URL时,我收到了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()
}
答案 0 :(得分:0)
这应该可行,但请注意,您在上面的粘贴在else块中有额外的})以及下面的附加}。有了这个,我得到了上述成功的工作。如果您的代码在您的代码中匹配,那么您的浏览器中可能会使用某种中间代理,但不会迅速,反之亦然,这会导致更改发生。
请注意,后台线程需要很短的时间才能解决,因此如果您的程序在后台完成下载之前终止,您将无法看到任何内容。
答案 1 :(得分:0)
我正在使用iOS模拟器,我意识到虽然我的笔记本电脑连接到互联网,但模拟器并不是因为系统偏好设置中的服务顺序\网络WiFi不在顶部。显然,模拟器不会试图找到第一个实际连接的设备!所以我重新订购了服务,现在代码工作正常。
答案 2 :(得分:-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")
}