recherche

Maison  >  Questions et réponses  >  le corps du texte

objective-c - NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?

NSString* testObject = [[NSData alloc] init];testObject 在编译时和运行时分别是什么类型的对象?

迷茫迷茫2769 Il y a quelques jours375

répondre à tous(1)je répondrai

  • 怪我咯

    怪我咯2017-04-21 11:19:58

    Je comprends votre question, mais la question que vous avez posée n'est pas tout à fait correcte. Il n'y a pas de concept d'objet au moment de la compilation.

    Tout d'abord, la déclaration NSString *testObject indique au compilateur que testObject est un pointeur vers un objet Objective-C. Car quel que soit le type d'objet vers lequel il pointe, l'espace mémoire occupé par un pointeur est fixe, donc s'il est déclaré comme n'importe quel type d'objet, il n'y aura aucune différence dans le code exécutable final généré. La définition de NSString ici indique simplement au compilateur de vérifier testObject comme NSString Si une méthode non NSString est appelée ultérieurement, un avertissement sera généré.

    Ensuite, vous créez un objet NSData et enregistrez l'adresse mémoire de cet objet dans testObject. Ensuite, au moment de l'exécution, l'espace mémoire pointé par testObject est un objet NSData. Vous pouvez utiliser testObject comme objet NSData.

    répondre
    0
  • Annulerrépondre