2012-10-17 47 views
0

我有一個瀏覽器應用程序,我用它來輸入特定的網站。iOS6 NSHTTPCookieStorage deleteCookie問題

這個網站(我沒有)有一個只在iOS6相關的錯誤。登錄到網站後,如果嘗試運行應用程序並再次登錄,則會失敗。

在Safari瀏覽器中,如果我在第二次嘗試之前刪除了cookie,它就會起作用。但是,當我使用UIWebView時,它看起來像我試圖打印它們時刪除cookie,但登錄仍然失敗。

我用這個代碼來刪除cookies:

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

它不會對iOS5的發生。

任何想法?

回答

1

可能......你不應該刪除「for」中的對象。我想有時你會崩潰。 你應該在「for」中標記一些對象並刪除對象 例如:

NSMutableArray * arrayObject = [NSMutableArray array];

NSMutableArray * deleteArray = [NSMutableArray array];

for (Someobject *object in arrayObject) { 
    [deleteArray addObject:object]; 
} 
[arrayObject removeObjectsInArray:deleteArray]; 
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顯示在最後一個對象?