Swift - NSHTTPCookie 为零
Swift - NSHTTPCookie is nil
我正在尝试在 Swift 中编写几个 cookie,这样当我显示 webview 时,它将能够读取这些 cookie 并做出适当的反应。我找到了许多关于如何创建 cookie 和阅读 Apple 文档的示例,但我似乎无法获得有效的 NSHTTPCookie 对象。它总是零。
这是我的代码:
let baseHost = "domain.com"
let oneYearInSeconds = NSTimeInterval(60 * 60 * 24 * 365)
func setCookie(key: String, value: AnyObject) {
var cookieProps = [
NSHTTPCookieOriginURL: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]
var cookie = NSHTTPCookie(properties: cookieProps)
// This line fails due to the nil cookie
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie!)
}
我的 cookie
变量是 nil
。我已经尝试了多种属性组合,包括同时具有 NSHTTPCookieOriginURL
和 NSHTTPCookieDomain
,有和没有 NSHTTPCookieSecure
,甚至没有 NSHTTPCookieExpires
。总是 nil
.
有人知道我做错了什么吗?
我认为问题是您想要使用 NSHTTTPCookieDomain
,而不是 NSHTTPCookieOriginURL
。
你能试试这样的属性吗:
var cookieProps = [
NSHTTPCookieDomain: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]
如果您不向构造函数提供有效的属性,您将得到一个空值。您应该向 NSHTTPCookieSecure
提供布尔值,而不是字符串。
我正在尝试在 Swift 中编写几个 cookie,这样当我显示 webview 时,它将能够读取这些 cookie 并做出适当的反应。我找到了许多关于如何创建 cookie 和阅读 Apple 文档的示例,但我似乎无法获得有效的 NSHTTPCookie 对象。它总是零。
这是我的代码:
let baseHost = "domain.com"
let oneYearInSeconds = NSTimeInterval(60 * 60 * 24 * 365)
func setCookie(key: String, value: AnyObject) {
var cookieProps = [
NSHTTPCookieOriginURL: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]
var cookie = NSHTTPCookie(properties: cookieProps)
// This line fails due to the nil cookie
NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie!)
}
我的 cookie
变量是 nil
。我已经尝试了多种属性组合,包括同时具有 NSHTTPCookieOriginURL
和 NSHTTPCookieDomain
,有和没有 NSHTTPCookieSecure
,甚至没有 NSHTTPCookieExpires
。总是 nil
.
有人知道我做错了什么吗?
我认为问题是您想要使用 NSHTTTPCookieDomain
,而不是 NSHTTPCookieOriginURL
。
你能试试这样的属性吗:
var cookieProps = [
NSHTTPCookieDomain: baseHost,
NSHTTPCookiePath: "/",
NSHTTPCookieName: key,
NSHTTPCookieValue: value,
NSHTTPCookieSecure: "TRUE",
NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
]
如果您不向构造函数提供有效的属性,您将得到一个空值。您应该向 NSHTTPCookieSecure
提供布尔值,而不是字符串。