2016-07-20 65 views
0

我正在繼承NSURLRequest。爲創建的類創建自定義init方法。雖然編碼,我結束了以下錯誤。「‘必要’初始化‘的init(編碼器:)’必須的‘的NSURLRequest’子類中提供」 ......Swift:錯誤:「必需的」初始化'初始化(編碼器:)'必須由'NSURLRequest'的子類提供「

我的代碼是

import Foundation 

class URLRequest: NSURLRequest { 
    init (UrlRequestWithURL: NSString, setHTTPBody: NSData, shouldHandleCookies: Bool, isHTTPMethodPost: Bool, withTimeoutInterval: NSTimeInterval) 
    { 

    } 

// Here it shows the error 
} 

幫助我對此..

除了上述問題....

  1. 我是否真的需要子類化NSUrlRequest ..(創建urlrequest變量的目的是創建必須分配給urlsession變量的多個請求。)還有其他方法可以滿足目的嗎?

  2. 如何在swift中創建單例類。所有這些日子我都與objc合作過。我覺得很難制定它。

+0

Re#2:關於Swift「singletons」的一切都在http://stackoverflow.com/questions/24024549/using-a-dispatch-once-singleton-model-in-swift中說過。 –

+0

由於NSURLRequest實現了'NSCoding',所以你必須實現'NSCoding',它需要你實現所需的初始化器。你需要子類NSURLRequest?可能不會,但你沒有清楚地解釋你爲什麼這樣做。有一個很好的機會,你可以使用擴展 – Paulw11

+0

添加init(編碼器解碼器:NSCoder){超級初始(編碼器:解碼器) }並嘗試 –

回答

0

我會避免子類化NSURLRequest。當我這樣做時,我遇到了非常奇怪的行爲(並且越來越差的行爲越差越好,您支持iOS版本)。

你最好不要添加類的方法和使用NSURLProtocolpropertyForKey:inRequest:setProperty:forKey:inRequest:方法。

相關問題