Kos*_*ika 4 xcode ios swift xcode6 ios8
在最新的XCode 6 beta(5)中,我注意到我的应用程序中几乎每个类都抱怨错误:
Class does not implement its superclass's required members
例如:
import UIKit
let _sharedAPIManager = APIManager(baseURL: NSURL.URLWithString(API_URL))
class APIManager: AFHTTPSessionManager {
class var sharedInstance : APIManager {
return _sharedAPIManager
}
// this fixes compiler error but why it should be here?
required init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override init() {
super.init()
}
override init(baseURL url: NSURL!) {
super.init(baseURL: url)
self.responseSerializer = AFJSONResponseSerializer()
self.requestSerializer = AFJSONRequestSerializer()
self.requestSerializer.setValue(API_KEY, forHTTPHeaderField: "X-Api-Key")
self.requestSerializer.setValue("3", forHTTPHeaderField: "X-Api-Version")
}
override init(baseURL url: NSURL!, sessionConfiguration configuration: NSURLSessionConfiguration!) {
super.init(baseURL: url, sessionConfiguration: configuration)
}
Run Code Online (Sandbox Code Playgroud)
问题是为什么即使在AFNetworking的AFHTTPSessionManager的子类化中它也是相关的?我错过了什么吗?
因为AFHTTPSessionManager符合NSCoding并且initWithCoder:是必需的.来自手册:
initWithCoder:返回从给定unarchiver中的数据初始化的对象.(需要)
因为您的类会覆盖某些超类的指定初始值设定项,所以它不会自动从超类继承初始值设定项.如果您没有覆盖任何初始值设定项,那么超类中的所有初始值设定项都将自动继承,因此将满足NSCoding所需的初始值设定项.
| 归档时间: |
|
| 查看次数: |
8182 次 |
| 最近记录: |