0

次のチュートリアルで説明されているように、NSURLProtocol を実装しようとしました: http://www.raywenderlich.com/76735/using-nsurlprotocol-swift

iOS8 ではすべて正常に動作しますが、iOS7 では startLoading() で実行時エラーが発生します。

override func startLoading() {
    var newRequest = self.request.copy() as NSMutableURLRequest //<- this line fails
    NSURLProtocol.setProperty(true, forKey: "MyURLProtocolHandledKey", inRequest: newRequest)

    self.connection = NSURLConnection(request: newRequest, delegate: self)
}

エラー: WebCore: CFNetwork Loader(10): EXC_BREAKPOINT

NSURLProtocol の実装に成功した人はいますか? ありがとうございました!

4

2 に答える 2

0

問題は、(変更不可の) NSURLRequest のコピーが別の変更不可の NSURLRequest であるため、NSMutableURLRequest にキャストできないことです。試す:

var newRequest = self.request.mutableCopy() as NSMutableURLRequest // mutableCopy() instead of copy()

これにより、元のリクエストの変更可能なコピーが得られ、問題なくキャストされるはずです。

于 2014-10-08T09:25:41.107 に答える