AFNetworking和Swift – 保存json响应
发布时间:2020-12-14 04:47:23 所属栏目:百科 来源:网络整理
导读:我想在 swift中发出一个GET请求来获取一些Json数据. 我尝试使用AFNetworking并且它有效,但我不知道如何返回我得到的Json. 我尝试了返回,但它是在GET之前制作的,所以我什么都没得到…… func makeGet(place:String) - String{ var str:String = "" let manage
我想在
swift中发出一个GET请求来获取一些Json数据.
我尝试使用AFNetworking并且它有效,但我不知道如何返回我得到的Json. 我尝试了返回,但它是在GET之前制作的,所以我什么都没得到…… func makeGet(place:String) -> String { var str:String = "" let manager = AFHTTPRequestOperationManager() manager.requestSerializer.setValue("608c6c08443c6d933576b90966b727358d0066b4",forHTTPHeaderField: "X-Auth-Token") manager.GET("http://something.com/api/(place)",parameters: nil,success: { (operation: AFHTTPRequestOperation!,responSEObject: AnyObject!) in str = "JSON: (responSEObject.description)" println(str) //print the good thing },failure: { (operation: AFHTTPRequestOperation!,error: NSError!) in str = "Error: (error.localizedDescription)" }) return str //return "" } 你能帮助我吗 ? 解决方法
您没有从该函数获得响应,因为GET操作是异步发生的.也就是说,执行顺序如下:
>你打电话给makeGet 因此,您可以访问从服务器返回的JSON的唯一一次是在步骤4中,您需要找到一种存储该值的方法,以便您可以解析它或使用它或其他任何东西.这里有多种选择 – 一种是定义在类实例上调用事件处理程序的闭包,如下所示: class MyClass { func jsonLoaded(json: String) { println("JSON: (json)") } func jsonFailed(error: NSError) { println("Error: (error.localizedDescription)") } func makeGet(place:String) { let manager = AFHTTPRequestOperationManager() manager.requestSerializer.setValue("608c6c08443c6d933576b90966b727358d0066b4",forHTTPHeaderField: "X-Auth-Token") manager.GET("http://something.com/api/(place)",responSEObject: AnyObject!) in self.jsonLoaded(responSEObject.description) },error: NSError!) in self.jsonFailed(error) } ) } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |