Swift - NSHTTPCookie是零

Sha*_*yUT 9 cookies ios swift

我正在尝试在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!)
}
Run Code Online (Sandbox Code Playgroud)

我的cookie变量是nil.我尝试了很多属性的组合,包括NSHTTPCookieOriginURLNSHTTPCookieDomain,有和没有NSHTTPCookieSecure,甚至没有NSHTTPCookieExpires.永远nil.

有没有人有任何想法我做错了什么?

tha*_*guy 15

我相信问题是你想要使用NSHTTTPCookieDomain,不是NSHTTPCookieOriginURL.

你可以尝试这样的属性:

var cookieProps = [
        NSHTTPCookieDomain: baseHost,
        NSHTTPCookiePath: "/",
        NSHTTPCookieName: key,
        NSHTTPCookieValue: value,
        NSHTTPCookieSecure: "TRUE",
        NSHTTPCookieExpires: NSDate(timeIntervalSinceNow: oneYearInSeconds)
    ]
Run Code Online (Sandbox Code Playgroud)

如果未向构造函数提供有效属性,则将获得null值.你应该提供一个布尔值NSHTTPCookieSecure,而不是一个字符串.