iOS6 NSHTTPCookieStorage deleteCookie问题

时间:2012-10-17 18:28:37

标签: objective-c xcode cookies uiwebview ios6

我有一个浏览器应用程序,用于进入特定网站。

此网站(我不拥有)有一个仅在iOS6中有关的错误。登录网站后,如果您尝试运行该应用并再次登录,则会失败。

在safari中,如果我在第二次尝试之前删除了cookie,它就可以了。但是当我使用UIWebView时,看起来我尝试打印时会删除cookie,但登录仍然失败。

我使用此代码删除Cookie: 的

 NSHTTPCookie *cookie;
 NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
 for (cookie in [cookieStorage cookies]) {
     [cookieStorage deleteCookie:cookie];
     NSLog(@"delete Cookie. Name: %@ : , domain: %@", cookie.name, cookie.domain);
 }

的 它不会发生在iOS5上。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

可能是......你不应该删除“for”中的对象。我想有时你会崩溃。 您应该在“for”中标记一些对象并删除对象 例如:

NSMutableArray * arrayObject = [NSMutableArray array];

NSMutableArray * deleteArray = [NSMutableArray array];

for (Someobject *object in arrayObject) {
    [deleteArray addObject:object];
}
[arrayObject removeObjectsInArray:deleteArray];

答案 1 :(得分:0)

NSArray *newCookie = [NSArray arrayWithArray:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];

for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
for (NSHTTPCookie *cookie in newCookie) {
    NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithDictionary:cookie.properties];
    [properties removeObjectForKey:NSHTTPCookieExpires];
     NSHTTPCookie *changeCookie = [NSHTTPCookie cookieWithProperties:properties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:changeCookie];

此代码适用于iOS5& iOS6的。我检查了。我认为问题在于:   NSLog 会在最后一个对象中显示什么?

答案 2 :(得分:0)

我用这个:

@Override
public void configure(WebSecurity web) throws Exception {
        web.ignoring().antMatchers("path":);
}