0
我試圖轉移別人的代碼多達斯威夫特3.所有得很順利,除了一個行我一直無法弄清楚。它工作正常,在雨燕2.2的是,但是在斯威夫特3.將無法編譯它返回的錯誤:不能調用非功能型的價值「SessionManager」
Cannot call value of non-function type 'SessionManager'
import Alamofire
struct AlamofireAPIManager {
static let sharedManager: SessionManager = {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 360 // 120 seconds
configuration.timeoutIntervalForResource = 360
return SessionManager(configuration: configuration)
}()
}
.
.
.
override init() {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 360
configuration.timeoutIntervalForResource = 360 // seconds
self.alamofireManager = AlamofireAPIManager.sharedManager(configuration)
}
有問題的行是:
self.alamofireManager = AlamofireAPIManager.sharedManager(configuration)
如果我改變它到:
self.alamofireManager = AlamofireAPIManager.init()
它會編譯,但然後該應用程序無法正常工作。
你有什麼想法,什麼他想要做的,在這裏,什麼應該做將其遷移到斯威夫特3?謝謝。
**編輯:這裏是原代碼,任何遷移之前:
import Alamofire
struct AlamofireAPIManager {
static let sharedManager: Manager = {
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForRequest = 360 // 120 seconds
configuration.timeoutIntervalForResource = 360
return Manager(configuration: configuration)
}()
}
.
.
.
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForRequest = 360
configuration.timeoutIntervalForResource = 360 // seconds
self.alamofireManager = Alamofire.Manager(configuration: configuration)
你爲什麼將參數傳遞給sharedManager變量? SessionManager不是一個函數,正如錯誤所述。 – mattd
不太確定,@mattd。正如我所說,我正在處理別人的代碼。原來的命令實際上是'self.alamofireManager = Alamofire.Manager(配置:配置)'。在遷移過程中它發生了幾次變化。我假設它嘗試共享會話管理器。 – Lastmboy
是的,這是一個單身變量。所以它不接受參數,因爲你將它們設置在變量聲明中。 基本上,你應該刪除你調用的參數,兩個版本是相同的。 – mattd