xcode 7 не может присвоить значение типа '[NSHTTPCookie]' значению типа '[NSHTTPCookie]'
Я только что обновился до Xcode7 и пытаюсь переключить свой проект на использование синтаксиса Swift 2.0, когда столкнулся с этой ошибкой в файле из библиотеки с открытым исходным кодом, которую я использую. Вот соответствующий код:
public lazy var cookies:[String:NSHTTPCookie] = {
let foundCookies: [NSHTTPCookie]
if let responseHeaders = (self.response as? NSHTTPURLResponse)?.allHeaderFields {
foundCookies = NSHTTPCookie.cookiesWithResponseHeaderFields(responseHeaders, forURL:NSURL(string:"")!) as! [NSHTTPCookie]
} else {
foundCookies = []
}
var result:[String:NSHTTPCookie] = [:]
for cookie in foundCookies {
result[cookie.name] = cookie
}
return result
}()
Ошибка гласит: Невозможно присвоить значение типа '[NSHTTPCookie]' значению типа '[NSHTTPCookie]'
Есть что-то, чего я здесь не хватает?
1 ответ
Измените свой код на это:
public lazy var cookies:[String:NSHTTPCookie] = {
let foundCookies: [NSHTTPCookie]
if let responseHeaders = (self.response as? NSHTTPURLResponse)?.allHeaderFields as? [String:String] {
foundCookies = NSHTTPCookie.cookiesWithResponseHeaderFields(responseHeaders, forURL:NSURL(string:"")!)
} else {
foundCookies = []
}
var result:[String:NSHTTPCookie] = [:]
for cookie in foundCookies {
result[cookie.name] = cookie
}
return result
}()
Изменения:
if let responseHeaders ...
линия - добавилas? [String:String]
, так какallHeadersFields
тип возврата[NSObject : AnyObject]
и не[String:String
] требуетсяcookiesWithResponseHeaderFields...
удален
as! [NSHTTPCookie]
- это не имеет смысла, потому чтоcookiesWithResponseHeaderFields
тип возврата уже[NSHTTPCookie]
Просто проверь cookiesWithResponseHeaderFields
подпись:
class func cookiesWithResponseHeaderFields(headerFields: [String : String],
forURL URL: NSURL) -> [NSHTTPCookie]
Пожалуйста, прочитайте Как мне задать хороший вопрос. По крайней мере, вы должны указать на линии, где проблема и т. Д.