Besoin de précisions sur le type void !

zenxzenx Membre
12:37 modifié dans API AppKit #1
Bonsoir !

Lorsque je crée une méthode par exemple qui affiche un cercle, celle-ci pourrait se présenter sous la forme suivante :

- (void)drawCircle;

Cette méthode éxecute une action mais ne renvoie rien. Ma question en fait se porte sur ce qui suit. Il s'agit du header de la classe NSValue :

/* NSValue.h
Copyright (c) 1994-2005, Apple, Inc. All rights reserved.
*/

#import <Foundation/NSObject.h>

@class NSString, NSDictionary;

@interface NSValue : NSObject <NSCopying, NSCoding>

- (void)getValue:(void *)value;
- (const char *)objCType;

@end

@interface NSValue (NSValueCreation)

- (id)initWithBytes:(const void *)value objCType:(const char *)type;
+ (NSValue *)valueWithBytes:(const void *)value objCType:(const char *)type;
+ (NSValue *)value:(const void *)value withObjCType:(const char *)type;

@end

Quelle différence y a t il entre un objet de type (void *) et un objet avec le type id ?. Qu'est ce qu'un objet de type (const void *) ?. J'aimerais également si possible avoir des exemples concrets d'objets void et const void.

Merci d'avance !  ;)

Réponses

  • BruBru Membre
    janvier 2006 modifié #2
    void * est le type générique des pointeurs en C.

    Il représente un pointeur sur des données dont on ne connait pas le type, ou dont on se fout royalement du type.

    Quand id, c'est un pointeur typé : le type de ce pointeur est une structure représentant un objet en Objectve-C.

    .
  • zenxzenx Membre
    12:37 modifié #3
    Merci beaucoup pour ta réponse ! 
Connectez-vous ou Inscrivez-vous pour répondre.