2 messages consoles à  régler

Bonjour,

 

J'ai 2 messages consoles qui s'affichent lors de mon exécution d'application.

 

Il n'y aucun bug, ni aucun warning, mais j'aimerais quand même régler ces messages.

 

Voila les messages:

 



Received memory warning




DiskImageCache: Could not resolve the absolute path of the old directory




Avez-vous des pistes / explications pouvant m'aider à  solutionner cela s'il vous plait ?


Merci d'avance


Réponses

  • LarmeLarme Membre
    mai 2015 modifié #2

    Received memory warning: Tu consommes trop de ressources. Ton iDevice est limité en terme de RAM, espace disque, etc. Tu ne peux pas pomper toutes ses ressources, il doit en garder un minimum pour recevoir des appels par examples (cas et usage basique du téléphone).

    Essaye de librérer un peu de mémoires, des deallocs, etc.


    Un p'tit coup d'Instruments devrait t'aider, rien que pour Memory Leaks déjà ...

     


    Pour le deuxième:
    http://stackoverflow.com/questions/25412424/diskimagecache-could-not-resolve-the-absolute-path-of-the-old-directory-failed ?


  • Ben77650Ben77650 Membre
    mai 2015 modifié #3

    Received memory warning: Tu consommes trop de ressources. Ton iDevice est limité en terme de RAM, espace disque, etc. Tu ne peux pas pomper toutes ses ressources, il doit en garder un minimum pour recevoir des appels par examples (cas et usage basique du téléphone).

    Essaye de librérer un peu de mémoires, des deallocs, etc.

    Un p'tit coup d'Instruments devrait t'aider, rien que pour Memory Leaks déjà ...



     

    Donc ça viendrais de l'appareil utilisé, parce que mon téléphone a plus beaucoup de mémoire donc ça paraitrait plutôt logique.

     



    Pour le deuxième:
    http://stackoverflow...irectory-failed ?



     

    Je vais regarder, merci


  • AliGatorAliGator Membre, Modérateur

    Donc ça viendrais de l'appareil utilisé, parce que mon téléphone a plus beaucoup de mémoire donc ça paraitrait plutôt logique.

    Heu on parle bien de RAM hein, pas d'espace de stockage là .

    Quand tu reçois un MemoryWarning, c'est que tu utilises trop de RAM. Donc que ton code consomme trop de mémoire vive.

    Ca n'est pas dépendant par exemple du nombre d'applications que tu as installé sur ton iPhone, ou si tu as un iPhone 32Go ou 64Go (ce 32 ou 64Go c'est la taille de l'espace de stockage / espace disque, pas la RAM !), ou si tu as installé beaucoup de musique qui prendre de la place sur ton iPhone ou pas... tout ça c'est pas la RAM mais l'espace de stockage.
  • Ah ok désolé au temps pour moi.


     


    Il y a bien un problème de fuite mémoire avec l'application donc, et je vais essayer de regarder Instruments pour savoir d'où ça vient.


     


    Auriez-vous un tuto pour Instruments à  tout hasard svp ?


  • CéroceCéroce Membre, Modérateur
    mai 2015 modifié #7


    Il y a bien un problème de fuite mémoire avec l'application donc, 




    Non. Le système t'avertit que ton appli consomme trop de mémoire. ça peut provenir d'une fuite mémoire (des objets alloués et jamais libérés), mais aussi du fait que tu charges trop d'objets trop gros, du genre plein d'images.


  • Ben77650Ben77650 Membre
    mai 2015 modifié #8

    Merci pour le tutoriel


     


    Céroce je vais regarder alors, merci





  •  


    Je viens de faire le test et ça marche pas.


     


    Pour rappel le contenu de ma webview est pas commun, puisque je lui passe un fichier .php qui est transformé dans le code en .pdf, donc forcément ça ne marche pas avec le code fourni sur SO

  • LarmeLarme Membre


    Je viens de faire le test et ça marche pas.


     


    Pour rappel le contenu de ma webview est pas commun, puisque je lui passe un fichier .php qui est transformé dans le code en .pdf, donc forcément ça ne marche pas avec le code fourni sur SO




    Si tu le dis.


    Maintenant, je n'ai fait que copié/collé le message d'erreur dans Google et trouver un lien SO qui semblait donner une piste.


    Je n'ai jamais eu affaire à  cette erreur là , et sans code, et apparemment sans recherches de ta part, sans compter ma boule de cristal HS, c'est assez compliqué.


    Si tu commençais par investiguer cette erreur, essayer de trouver quand elle se déclenche (suite à  quelles actions, etc.), chercher des pistes sur le net, etc.

  • En tout cas, moi ça m'a aidé.


     


    J'avais dans ma liste des ToDos à  faire disparaitre ce message qui arrivait parfois. Lire ce post a été l'opportunité de le traiter immédiatement.


    Pour moi le problème était différent ; je fabrique un PDF dans un NSData que je visualise dans un UIWebView, et j'avais mis une base URL bidon dans l'appel de loadData:MIMEType:textEncodingName:baseURL:. Je n'avais pas imaginé qu'on pouvait mettre nil (rien trouvé dans la doc à  ce sujet). Mettre nil a permis d'éliminer le message.


  • Ben77650Ben77650 Membre
    mai 2015 modifié #12

    Si tu le dis.

    Maintenant, je n'ai fait que copié/collé le message d'erreur dans Google et trouver un lien SO qui semblait donner une piste.

    Je n'ai jamais eu affaire à  cette erreur là , et sans code, et apparemment sans recherches de ta part, sans compter ma boule de cristal HS, c'est assez compliqué.

    Si tu commençais par investiguer cette erreur, essayer de trouver quand elle se déclenche (suite à  quelles actions, etc.), chercher des pistes sur le net, etc.



     

    J'ai fait des recherches, mais j'ai pas réussi à  résoudre le souci.

     

    L'erreur se déclenche à  l'affichage de l'UIWebView.

     

    Sinon pour le code le voila:

     

    Le PHP



    header('Content-type: application/pdf');


    if (isset($_POST['idConnexion']))
    {
    $idConnexion = $_POST['idConnexion'];
    $mdpConnexion = $_POST['mdpConnexion'];
    $idFacture = $_POST['idFacture'];
    }
    else
    {
    $idConnexion = $_GET['idConnexion'];
    $mdpConnexion = $_GET['mdpConnexion'];
    $idFacture = $_GET['idFacture'];
    }

    ini_set('soap.wsdl_cache_enabled', '0');

    $wsdlURL = 'https://xxxx.com/Balm/Services_2_0.wsdl';
    $ns = 'https://erp.xxxx.com/developerKey/';

    $devKey = 'a1b2c3';

    $soap = new SoapClient($wsdlURL);
    $soap->__setSoapHeaders(new SoapHeader($ns, 'developerKey', $devKey));

    $params = new stdClass();
    $params->context = 'Client';
    $params->login = $idConnexion;
    $params->password = $mdpConnexion;

    $res = $soap->GetContactDevKey($params);

    $devKey2 = $res->result;

    $soap2 = new SoapClient($wsdlURL);
    $soap2->__setSoapHeaders(new SoapHeader($ns, 'developerKey', $devKey2));

    $res2 = $soap2->Authenticate($params);

    $token = $res2->result->VisitorToken;

    $demandsParam = new stdClass();
    $demandsParam->visitorKey = $token;
    $demandsParam->printType = 'PrintBill';
    $demandsParam->id = $idFacture;
    $factures = $soap2->GetClientPrint($demandsParam);

    echo $factures->result->Content;



    L'Objective-C



    - (void)viewDidLoad {
    [super viewDidLoad];

    self.paieWebView.delegate = self;

    NSURL *lienPaie = [NSURL URLWithString:@http://extranet.aaaa.com/balmApp/paie.php];

    requete = [[NSMutableURLRequest alloc]initWithURL:lienPaie cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10];

    [requete setHTTPMethod:@POST];

    NSString *post =[[NSString alloc] initWithFormat:@idConnexion=%@&;mdpConnexion=%@&;idPaie=%@",idConnexion, mdpConnexion, idPaie];
    NSData *data = [post dataUsingEncoding:NSUTF8StringEncoding];

    [requete setHTTPBody:data];

    [self.paieWebView loadRequest:requete];
    }

    - (void)webViewDidStartLoad:(UIWebView *)webView
    {
    spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];

    spinner.center = CGPointMake(self.view.frame.size.width/2, self.view.frame.size.height/2);

    [self.view addSubview:spinner];
    [spinner startAnimating];
    }

    - (void)webViewDidFinishLoad:(UIWebView *)webView
    {
    [spinner stopAnimating];
    }

Connectez-vous ou Inscrivez-vous pour répondre.