65 votes

Messages de journal que je n'ai pas demandés dans Xcode 4.5 avec iOS 6.0

Depuis que j'ai mis à jour Xcode à la version 4.5 et que j'ai commencé à construire pour iOS 6, des messages logs comme celui-ci continuent d'apparaître :

ADDRESPONSE - ADDING TO MEMORY ONLY

Je n'ai jamais demandé cela (du moins pas consciemment).

Que dois-je faire pour mettre fin à ces messages ? Et quelle est leur origine ?

68voto

Shane MacPhillamy Points 813

Je rencontre le même problème, le message est émis par le framework CFNetwork, cela se produit à la fois sur l'appareil et dans le simulateur iOS. En particulier, l'exécution de chaînes de caractères sur CFNetwork montre :

ADDRESPONSE - pas d'ajout au disque ou à la mémoire : %@ ADDRESPONSE - AJOUT DANS LA MÉMOIRE UNIQUEMENT : %@

Je pense qu'elle est émise par la méthode CFCachedURLResponse.

Mise à jour - après une enquête plus approfondie, mon problème est dû à ce qui suit :

NSURLCache *cache = [[NSURLCache alloc] initWithMemoryCapacity: memoryCapacity diskCapacity: discCapacity diskPath:[SDURLCache defaultCachePath]];
[NSURCache setSharedCache:cache];

Lorsque memoryCapacity == 0, le fait de fixer cette valeur à une valeur réaliste comme 10 Mo a empêché l'émission des messages et a permis de récupérer les objets du cache comme je l'espérais.

Malheureusement ou au contraire selon votre point de vue, le comportement de NSURLRequest etc a changé avec iOS 5. NSURLRequestCachePolicy est maintenant pris en compte, ce qui signifie que vous devrez vérifier la version d'iOS sur laquelle tourne votre application et ajuster votre comportement de mise en cache en conséquence.

0voto

iPatel Points 15121

J'ai le même problème que vous. Je ne sais pas mais je l'ai résolu en utilisant la formation suivante dans viewDidLoad méthode.

-(void) viewDidLoad
{
  // First write my code of UI Creation.
  // Then I call 

  [super viewDidLoad]; //add [super viewDidLoad] AFTER implementation, not before.
}

Cela fonctionne bien pour moi, j'espère que cela fonctionnera aussi pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X