Problème de compréhension

tabliertablier Membre
septembre 2014 modifié dans API AppKit #1

Dans un exemple Apple nomme "CacheInfo-MacOSX", j'ai trouvé ceci:



- (id)init


{


    self = [super init];


    


    /* Defines a temporary directory for the on-disk URL cache. */


 


    self.diskPath = [[NSMutableString alloc] initWithString:NSTemporaryDirectory()];


    NSString *appName = [[NSProcessInfo processInfo] processName];


    [self.diskPath appendString:appName];


    


/* Creates a custom URL cache that uses both memory and disk. */


 


NSURLCache *sharedCache = 


[[NSURLCache alloc] initWithMemoryCapacity:kMemoryCacheSize * 1000000 


  diskCapacity:kDiskCacheSize * 1000000


  diskPath:diskPath];


[NSURLCache setSharedURLCache:sharedCache];


[sharedCache release];


 


return self;


}



Je ne vois pas vraiment la raison de fabriquer un "sharedCache" pour le détruire juste après.


Quelle est la bonne explication?


Réponses

  • AliGatorAliGator Membre, Modérateur
    Ou tu crois qu'il le détruit ? Il le release car il est retenu par le sharedCache (singleton) mais il est pas detruit.
  • Je crois que j'ai zappé la ligne "[NSURLCache setSharedURLCache:sharedCache];" Les zones mémoires sont alors retenues de deux cotés simultanément et supprimer un des pointeurs ne libère pas les zones mémoires. c'est ça?


    Ma question prouve qu'il y a quelques notions que je n'ai pas bien assimilé!


  • AliGatorAliGator Membre, Modérateur
    Tout à  fait. C'est comme quand tu mets un objet dans un NSArray ou un NSDictionary, ce dernier le retain de son côté du coup même si tu le release du tien quelqu'un le retient encore donc il vit toujours.


    Ceci dit tu utilises encore du code non-ARC à  faire les retain/release par toi même ? C'est un peu dépassé tout ça ;-) (même si ça ne change pas le principe, avec ARC le raisonnement est le même tant que quelqu'un a une strong reference sur un objet il est retenu en vie par cet objet comme un maà®tre retient un chien avec une laisse.
  • tabliertablier Membre
    septembre 2014 modifié #5

    Ceci dit tu utilises encore du code non-ARC à  faire les retain/release par toi même ?



    Vrai, mais ce code n'est pas de moi, il est d'Apple. Suite à  des problèmes avec NSURLConnection, j'examine différents exemples d'Apple pour comprendre un peu mieux et faire une application qui marche sous 10.5 et 10.6, ppc et intel. Je ne sais pas de quand date ARC.


    En fait je cherche à  suivre ton conseil donné dans un autre post, de faire des appels asynchrones.


  • Moi c'est prolème qui dépasse ma compréhension !
  • A mon avis, c'est mal orthographié. Tablier voulait sans doute écrire prolemme, une proposition à  la base d'un lemme...


  • Comme dans le film "certains lemme chaud" ?
  • Bon comme vous aimez corriger mes phôtes je vous suggère de corriger celle qui est dans les deux phrases ci-dessous.


     


    Les fruits que j'ai vu cueillir.


    Les fruits que j'ai vu mûrir.


  • CéroceCéroce Membre, Modérateur
    Avec l'auxiliaire avoir, le participe passé s'accorde au complément d'objet direct si celui-ci est placé avant l'auxiliaire.
  • Les fruits que j'ai vus mûrissant.


    Les fruits que j'ai vu cueillir.


     


    :)


  • DrakenDraken Membre
    septembre 2014 modifié #12
    Moi avoir manger pomme.

    Pomme bon miam miam !
  • AliGatorAliGator Membre, Modérateur

    Bon comme vous aimez corriger mes phôtes je vous suggère de corriger celle qui est dans les deux phrases ci-dessous.
     
    Les fruits que j'ai vu cueillir.
    Les fruits que j'ai vu mûrir.

    Dans le premier cas, c'est quelqu'un qui cueille les fruits, c'est pas les fruits qui se cueillent eux-même. Le COD en question est alors l'infinitif "cueillir". J'ai vu quoi ? J'ai vu *qqun cueillir* les fruits.
    Donc il n'y a rien à  corriger, c'est bien "Les fruits que j'ai vu cueillir".

    Dans le second cas, c'est les fruits qui ont mûri. Le COD du participe passé se trouve bien être alors "les fruits", donc on doit écrire "Les fruits que j'ai vus mûrir".
  • Un grand classique. J'irais jusqu'à  dire une antienne. Mais il m'est agréable de voir, au milieu de la dysorthographie ambiante, que les gens de CocoaCafé traquent aussi bien la faute de français que l'erreur de code...  ^_^


  • tabliertablier Membre
    septembre 2014 modifié #15

    Je viens de revenir et je vois que ça vous a fait réagir, même si c'est un grand classique!


    Quand j'étais en 6ieme, l'instituteur nous a fait faire cette dictée (que vous pouvez essayer de faire faire à  vos enfants):


     


    Règle de trois:


    Si six scies scient six cigares,


    six cent six scies scient six cent six cigares.


     


    Une vrai catastrophe en nombre de fautes!


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