我是Swift开发的新手,在尝试做一些教程时我很挣扎(我知道,他们是一步一步的,但显然我必须搞砸了一线,现在我无法想象生活为什么它不起作用。我不擅长调试,缺乏对语言基础的扎实理解。如果有人能帮我指出正确的方向,我将不胜感激。
我已经尝试过评论一些东西,试图让它尽可能地“裸骨”,同时仍然能够“顺从”,但我现在相当坚持。
以下是代码:
此课程收到错误:
final class ForecastAPIClient : APIClient {
let configuration: NSURLSessionConfiguration
lazy var session : NSURLSession = {
return NSURLSession(configuration: self.configuration)
}()
private let token : String
init(config: NSURLSessionConfiguration, APIKey: String){
self.configuration = config
self.token = APIKey
}
convenience init(APIKey: String){
self.init(config: NSURLSessionConfiguration.defaultSessionConfiguration(), APIKey: APIKey)
}
func fetchCurrentWeather(coordinate: Coordinate, completion : APIResult<CurrentWeather> -> Void){
let request = Forecast.Current(token: self.token, coordinate: coordinate).request
}
}
试图遵守这个协议:
protocol APIClient{
var configuration : NSURLSessionConfiguration { get }
var session : NSURLSession { get }
init(withConfig: NSURLSessionConfiguration)
func JSONTaskWithRequest(request: NSURLRequest, completion: JSONTaskCompletion) -> JSONTask
func fetch<T>(request: NSURLRequest, parse: JSON -> T?, completion: APIResult<T> -> Void)
}
很抱歉,如果这已经得到了解答..我搜索并阅读了其他一些帖子,但我仍然无法弄明白。
提前致谢!
答案 0 :(得分:0)
看起来你的班级没有实施协议中的两个方法:
func JSONTaskWithRequest(request: NSURLRequest, completion: JSONTaskCompletion) -> JSONTask
和
func fetch<T>(request: NSURLRequest, parse: JSON -> T?, completion: APIResult<T> -> Void)
此外,您的班级有一个带有此签名的初始化程序:
init(config: NSURLSessionConfiguration, APIKey: String)
当协议要求时:
init(withConfig: NSURLSessionConfiguration)