xcode 7无法将类型"[NSHTTPCookie]"的值分配给类型"[NSHTTPCookie]"的值 [英] xcode 7 cannot assign a value of type '[NSHTTPCookie]' to a value of type '[NSHTTPCookie]'
问题描述
我刚刚更新到Xcode7,并且在我正在使用的开放源代码库中的文件中遇到此错误时,尝试将项目切换为使用Swift 2.0语法.这是相关的代码:
I just updated to Xcode7 and am trying to switch my project to using the Swift 2.0 Syntax when I ran into this error in a file from an open source library I'm using. Here's the relevant code:
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]的值
The error reads: Cannot assign a value of type '[NSHTTPCookie]' to a value of type '[NSHTTPCookie]'
我这里缺少什么吗?
推荐答案
将代码更改为此:
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]
而不是cookiesWithResponseHeaderFields...
if let responseHeaders ...
line - did addas? [String:String]
, becauseallHeadersFields
return type is[NSObject : AnyObject]
and not[String:String
] required bycookiesWithResponseHeaderFields...
已删除as! [NSHTTPCookie]
-没有意义,因为cookiesWithResponseHeaderFields
返回类型已经是[NSHTTPCookie]
removed as! [NSHTTPCookie]
- it has no sense, because cookiesWithResponseHeaderFields
return type is already [NSHTTPCookie]
只需检查cookiesWithResponseHeaderFields
签名:
class func cookiesWithResponseHeaderFields(headerFields: [String : String],
forURL URL: NSURL) -> [NSHTTPCookie]
请阅读如何问一个好问题.至少,您应该指出问题所在的行,等等.
Please read How do I ask a good question. At least, you should point out to lines where the problem is, etc.
这篇关于xcode 7无法将类型"[NSHTTPCookie]"的值分配给类型"[NSHTTPCookie]"的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!