Acceder à  une propriété d'un objet

Bonjour/Bonsoir à  tous,


 


J'utilise TwitterKit depuis peu. Sauf que je viens de tomber sur un cas particulier que je ne comprends pas :


Quand je mets un breakpoint pour voir le contenu d'un objet (TWTRTweet), celui-ci m'affiche toutes les propriétés qu'il contient. Dont une qui m'intéresse "media".


Or impossible d'y avoir accès, par exemple avec tweet.media, tweet étant ici une instance de TWTRTweet. La doc https://dev.twitter.com/twitter-kit/ios-reference/twtrtweetn'indique pas l'existence d'une telle propriété, pourtant mon instance tweet contient bien plein d'autres propriétés qui ne sont pas nulles (et même mon fameux media, une instance de NSURL)


 


Vous auriez pas une idée pour y accéder ? Et aussi une explication :)


 


Merci à  tous !


Réponses

  • TerflogagTerflogag Membre
    décembre 2015 modifié #2

    Bonjour ! 


     


    Je dirai qu'il s'agit d'attributs protégés qui n'ont donc pas d'accès possible en lecture. Après ma remarque n'est fondé sur rien de concret, à  vérifier donc, si tu trouves la réponse cela m'intéresse également... :)


  • ah oui tu as certainement raison ! C'est bizarre de ne pas avoir donner de méthodes publiques pour accéder à  ces données, parce que ici, typiquement elles ne servent à  rien si il n'y pas de telles méthodes...


  • Elles servent peut être de façon interne, en général ce n'est pas là  pour rien :-) 


  • Nop, si tu regardes la doc pour mon cas https://dev.twitter.com/twitter-kit/ios-reference/twtrtweet, je vois pas ce qu'ils peuvent utiliser en interne. Clairement, ces propriétés (media, url et autres) sont pour un usages externes, mais je vois vraiment pas comment y accéder.


  • Bon j'ai trouvé un moyen d'y accéder via valueForKey: , mais c'est pas super pratique... 


  • Joanna CarterJoanna Carter Membre, Modérateur
    Et il y aura la possibilité de rejet de ton app par Apple pour utiliser les APIs privés.
  • Sans blague ?


    Mais ce sont les API de Fabric, ça devrait pas poser de problèmes ? Si ils veulent pas qu'on y accède ils n'ont qu'à  les mettre en variable de classe nan ?


  • Hello,


     


    Non tu ne risques pas de te faire rejeter ton application. On peut accéder à  tout avec valueForKey, c'est pour ça que c'est impossible de déclarer une pure variable/property privée en Objective C. 


     


    Par contre ce que tu risques est que un jour la variable privée changera de nom ou qu'elle sera complètement supprimée et donc ton code ne marchera plus. 

  • Ok je comprends. Effectivement, il faut que je croise les doigts pour que leur façon de parser les tweets reste la même !

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