2016-09-08 18 views
0

plsは助けを私はスウィフト1.2上のURLの非同期要求を送信する機能を持っているが、それはスウィフト2にスウィフト2&JSON機能

func getpost(method:String,bodyt:String,url:String,completion: (res: AnyObject?)->Void){ 
UIApplication.sharedApplication().networkActivityIndicatorVisible = true 
let urlString = url 
let url:NSURL! = NSURL(string: urlString) 
let request = NSMutableURLRequest(URL: url) 
request.HTTPMethod = method 
let postString = bodyt 
if method.uppercaseString == "POST"{ 
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding) 
} 
let mainQueue = NSOperationQueue.mainQueue() 
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) 
    {(response, data, error) in 
     if let httpResponse = response as? NSHTTPURLResponse { 
      let statusCode = httpResponse.statusCode 
      if (error == nil) && (statusCode == 200){ 
       let resultdata: AnyObject? = NSJSONSerialization.JSONObjectWithData(data!, options: nil, error: nil) 
       dispatch_async(dispatch_get_main_queue(), { 
        completion(res: resultdata) 
       }) 
      } 
     } 

} 
} 

を動作しません:)

+0

より具体的にする必要があります。 –

+0

[Swfit 2 "余分な引数 'のエラー'の可能な複製]](http://stackoverflow.com/questions/33470527/swfit-2-extra-argument-error-in-call) – vadian

答えて

0

NSURLConnectionはiOS 9では廃止されましたが、これはおそらく問題を引き起こすものです。 NSURLSessionを初期化し、次にNSURLSessionDataTaskを初期化して必要なデータを取得することが、「新しい方法」を実行しようとしているところから分かります。これは、ここで概説したのとほぼ同じ方法で、またはデリゲートメソッドでも完了ハンドラを使用して行うことができます。詳細については、Developerのリファレンスページを参照してください。https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSession_class/ 好きな場合は、サンプルコードを送信できます。がんばろう!