最近開發遇到了一個這樣的問題:Warning:'sendSynchronousRequest(_:returningResponse:)' was deprecated in iOS 9.0: Use [NSURLSession dataTaskWithRequest:completionHandler:] (see NSURLSession),即黃色的警告的,這是因為ios9.0更新了原有的解析方式,
我們原來解析資料是這樣的:
NSString * str1 =@"url位址";
NSURL *url = [NSURLURLWithString:str3];
NSError* error = nil;
NSURLRequest* request = [NSURLRequestrequestWithURL:url];
NSData *data =[NSURLConnectionsendSynchronousRequest:request returningResponse:nilerror:nil];
NSDictionary *dic = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingAllowFragmentserror:&error];
NSLog(@"dic==%@",dic);
但是發現第五行會報上述錯誤,解決方法就是換新的擷取方式,具體方法為:
oc版:
NSURLSession *session = [NSURLSessionsharedSession];
[[session dataTaskWithURL:[NSURLURLWithString:str1]
completionHandler:^(NSData *data,
NSURLResponse *response,
NSError *error) {
NSDictionary *dicww = [NSJSONSerializationJSONObjectWithData:data options:NSJSONReadingAllowFragmentserror:&error];
NSLog(@"dicww==%@",dicww);
}] resume];
swift版:
var request = NSMutableURLRequest(URL: NSURL(string: "YOUR URL"))
var session = NSURLSession.sharedSession()
request.HTTPMethod = "POST"
var params = ["username":"username","password":"password"] as Dictionary<String, String>
var err: NSError?
request.HTTPBody = NSJSONSerialization.dataWithJSONObject(params, options:nil, error: &err)
request.addValue("application/json", forHTTPHeaderField:"Content-Type")
request.addValue("application/json", forHTTPHeaderField:"Accept")
var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Voidin
println("Response: \(response)")})
task.resume()
列印結果是一樣的。

感覺這個方法比較簡便移動,比以前直覺多了。