【问题标题】:iOS6 NSHTTPCookieStorage deleteCookie issueiOS6 NSHTTPCookieStorage deleteCookie 问题
【发布时间】:2012-10-08 02:22:27
【问题描述】:

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

这个网站(我不拥有)有一个仅在 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 上。

有什么想法吗?

【问题讨论】:

    标签: objective-c xcode cookies uiwebview ios6


    【解决方案1】:

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

    NSMutableArray *arrayObject = [NSMutableArray 数组];

    NSMutableArray *deleteArray = [NSMutableArray 数组];

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

    【讨论】:

      【解决方案2】:
      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 会在最后一个对象中显示什么?

      【讨论】:

        【解决方案3】:

        我用这个:

        NSHTTPCookieStorage *storage = NSHTTPCookieStorage.sharedHTTPCookieStorage;
        while (storage.cookies.count > 0) {
            [storage deleteCookie:storage.cookies.lastObject];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-09-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-11-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多