6

現在、Swift 2.0 との互換性のために Swift 1.2 コードの一部を書き直しています。実際、「sendAsynchronousRequest」にどのような変更が加えられたのかわかりません-現在、すべてのリクエストが失敗しています

NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in})

タイプ '(NSURLRequest, queue: NSOperationQueue, completionHandler: (NSURLResponse!, NSData!, NSError!) -> Void)' の引数リストで 'sendAsynchronousRequest' を呼び出すことはできません

何が悪いのか考えていますか?

4

4 に答える 4

6

Swift 1.2 および Xcode 6.3 では、署名sendAsynchronousRequest:queue:completionHandler:は次のとおりです。

class func sendAsynchronousRequest(request: NSURLRequest,
    queue: NSOperationQueue!,
    completionHandler handler: (NSURLResponse!, NSData!, NSError!) -> Void)

ただし、Swift 2 および Xcode 7 ベータ版では、 の署名sendAsynchronousRequest:queue:completionHandler:が変更され、次のようになりました。

// Note the non optionals, optionals and implicitly unwrapped optionals differences
class func sendAsynchronousRequest(request: NSURLRequest,
    queue: NSOperationQueue,
    completionHandler handler: (NSURLResponse?, NSData?, NSError?) -> Void)

その結果、Swift 2 および Xcode 7 ベータ版に移行すると、completionHandlerパラメーターの実装を変更し、queueパラメーターがオプションではないことを確認する必要があります。

于 2015-06-12T09:00:48.413 に答える