2011-11-16 11 views
7

Mi aplicación se conecta a un servidor y, en función de una cookie, el servidor emitirá una respuesta diferente.Borrar cookies para una aplicación iOS determinada

No es posible borrar de forma programada el almacén de cookies, para que el servidor no reconozca mi aplicación cuando entre en contacto con el servidor la próxima vez.

Reuní que borrar las cookies en Setting.app solo se aplica a las cookies dentro de Safari.

Muchas gracias por su comentario.

+1

Usted conoce ['[NSHTTPCookieStorage sharedHTTPCookieStorage]'] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSHTTPCookieStorage_Class/Reference/Reference.html), ¿sí? –

+0

Ahora estoy. Gracias por señalar esto. – Besi

Respuesta

16

bien ... el seguimiento de mi comentario anterior (y esperando que esto es la solución que está buscando), es probable que desee utilizar:

[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:]

para cada una de las galletas para su sitio .

+0

Tenga en cuenta que, por alguna razón, no puede llamarlo con cero para eliminar todas las cookies .. – Niralp

+0

@Michael ¿Puedo borrar las cookies en safari a través de una aplicación de iOS? –

+0

@GaneshKumar [desafortunadamente no] (http://stackoverflow.com/questions/9632294/is-it-possible-to-change-ios-safari-settings-programmatically) ... Apple quiere que los usuarios decidan cuándo las cookies y el navegador la historia se borra –

2

Si desea que los cambios en el NSHTTPCookieStorage que deben conservarse, también querrá a suspender a

[[NSUserDefaults standardUserDefaults] synchronize]; 

Para evitar que esto ralentizar su aplicación, también puede llamar a esto en una subproceso de fondo de este modo:

dispatch_queue_t backgroundQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); 

dispatch_async(backgroundQueue, ^{ 
    //TODO: Cookie deletion logic here 
}); 

EDIT:

Si sólo necesita hacer caso omiso de las cookies por completo para un determinado NSURLRequest, puede hacerlo con:

[request setHTTPShouldHandleCookies:NO]; 

Cuando la solicitud es su instancia de NSURLRequest.

Cuestiones relacionadas