Нямам много опит в разработката на 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, ще имат нужда от нея?