Я не очень опытен в iOS-разработке. При создании подкласса AFHTTPSessionManager
XCode предложил мне включить требуемый init(coder)
:
import UIKit
let _sharedAPIManager = APIManager(baseURL: NSURL(string: API_URL)!)
class APIManager: AFHTTPSessionManager {
/**
* Singleton service
* (https://github.com/hpique/SwiftSingleton)
*/
class var sharedInstance : APIManager {
return _sharedAPIManager
}
init(baseURL url: NSURL!) {
super.init(baseURL: url, sessionConfiguration: nil)
self.responseSerializer = AFJSONResponseSerializer() as AFJSONResponseSerializer
self.requestSerializer = AFJSONRequestSerializer() as AFJSONRequestSerializer
self.requestSerializer.setValue(API_KEY, forHTTPHeaderField: "X-Api-Key")
self.requestSerializer.setValue("3", forHTTPHeaderField: "X-Api-Version")
}
// this was inserted by XCode
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Мой главный вопрос: зачем это нужно? Насколько я знаю, NSCoder
имеет дело с кодом, связанным с раскадровками (например, вызывается при загрузке пера).
Связанный вопрос Класс не реализует обязательные члены своего суперкласса содержит некоторую информацию, но означает ли это, что она понадобится всем классам Swift, расширяющим классы Objective-C?