使用有关连接我的 sql 的旧教程实现 swift 的新 try catch
implementing swift's new try catch with older tutorial on connecting with my sql
您好,我正在努力使用有关连接到 mysql 数据库的旧教程来实现 swifts new try catch。
这是旧教程的代码:
func getPost(callback:(NSDictionary) -> ()){
request("http://myurl.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
var nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!){
(data, response, error) in
var error:NSError?
var response = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as NSDictionary
callback(response)
}
task.resume()
}
这是我尝试实现 try catch 的失败尝试,因为它想要它而不是响应 var
中的错误
func getPost(callback:(NSDictionary) -> ()){
request("http://url.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
var nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!){
(data, response, error) in
do {
var response = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch error& {
}
}
task.resume()
}
非常感谢有人帮助我正确设置语法,谢谢!
完整的工作代码:
func getFleet(){
getPost{
(response) in
print(response)
}
}
func getPost(callback:(NSDictionary) -> ()){
request("http://url.com/SpaceAcademy/SaveFleet.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
let nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) { (data, nsURLResponse, error) -> Void in
if let error = error {
//act on error from server
} else {
do {
var response = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch {
// act on thrown error
}
}
}
task.resume()
}
catch 不捕获来自服务器的错误,仅捕获解析 json 数据时可能抛出的错误。你需要同时处理它们。
func request(url:String, callback:(NSDictionary) -> ()){
let nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) { (data, nsURLResponse, error) -> Void in
if let error = error {
//act on error from server
} else {
do {
var response = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch {
// act on thrown error
}
}
}
task.resume()
}
您好,我正在努力使用有关连接到 mysql 数据库的旧教程来实现 swifts new try catch。
这是旧教程的代码:
func getPost(callback:(NSDictionary) -> ()){
request("http://myurl.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
var nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!){
(data, response, error) in
var error:NSError?
var response = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as NSDictionary
callback(response)
}
task.resume()
}
这是我尝试实现 try catch 的失败尝试,因为它想要它而不是响应 var
中的错误func getPost(callback:(NSDictionary) -> ()){
request("http://url.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
var nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!){
(data, response, error) in
do {
var response = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch error& {
}
}
task.resume()
}
非常感谢有人帮助我正确设置语法,谢谢!
完整的工作代码:
func getFleet(){
getPost{
(response) in
print(response)
}
}
func getPost(callback:(NSDictionary) -> ()){
request("http://url.com/SpaceAcademy/SaveFleet.php", callback: callback)
}
func request(url:String, callback:(NSDictionary) -> ()){
let nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) { (data, nsURLResponse, error) -> Void in
if let error = error {
//act on error from server
} else {
do {
var response = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch {
// act on thrown error
}
}
}
task.resume()
}
catch 不捕获来自服务器的错误,仅捕获解析 json 数据时可能抛出的错误。你需要同时处理它们。
func request(url:String, callback:(NSDictionary) -> ()){
let nsURL = NSURL(string: url)
let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL!) { (data, nsURLResponse, error) -> Void in
if let error = error {
//act on error from server
} else {
do {
var response = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary
callback(response)
} catch {
// act on thrown error
}
}
}
task.resume()
}