Utilisation de NSMutableArray dans déclaration de Class

guil182guil182 Membre
08:53 modifié dans API AppKit #1
Bonjour,
Merci d'avance à  l'ensemble de la communauté pour votre aide.
Je suis nouveau en terme de programmation mac et j'ai quelques problèmes avec le langage  :(.

Voici mon soucis :

J'ai deux classes definies dans : MeteoJour.h et MeteoNuit.h
un classe Meteo regroupant les deux premieres...

#import <Foundation/Foundation.h>

@class MeteoJour;
@class MeteoNuit;

@interface Meteo : NSObject {

@private
    // Caracteristiques de la meteo du jour
    MeteoJour *Meteojour;
    MeteoNuit *Meteonuit;

}

@property (nonatomic, retain) MeteoJour *Meteojour;
@property (nonatomic, retain) MeteoNuit *Meteonuit;

@end


Je crée une classe prévision qui a certaines caractéristiques et je voudrais également qu'elle ait un tableau de "Meteo"...et je bloque sur la syntaxe de declaration :
Faut il declarer :  NSMutableArray *MeteoJ; et ensuite l'initialiser avec les données de la class ?
ou peut-on lui dire directement MeteoJ tu seras un tableau prévisionnel de 4 Meteo.....et la je sais pas comment le définir.

Merci encore de votre aide.

Réponses

  • Philippe49Philippe49 Membre
    novembre 2008 modifié #2
    dans 1225726832:

    Je crée une classe prévision qui a certaines caractéristiques et je voudrais également qu'elle ait un tableau de "Meteo"...et je bloque sur la syntaxe de declaration :
    Faut il declarer :  NSMutableArray *MeteoJ; et ensuite l'initialiser avec les données de la class ?
    ou peut-on lui dire directement MeteoJ tu seras un tableau prévisionnel de 4 Meteo.....et la je sais pas comment le définir.


    EN objective-C les tableaux peuvent contenir des objets de classes différentes. Il ne faut donc pas les typer dans la déclaration.

    Ainsi, dans l'interface mettre
    NSMutableArray * meteoJ;

    Dans l'implémentation (le .m) ,
    meteoJ=[[NSMutableArray alloc] init] ;
    [meteoJ addObject:meteoHier]
    [meteoJ addObject:meteoAujourdHui]
    ...

    ou
    meteoJ=[[NSMutableArray arrayWithObjects:meteoHier,meteoAujourdHui,nil] retain];
    et peut-être plus loin
    [meteoJ addObject:meteoDemain];
  • guil182guil182 Membre
    08:53 modifié #3
    Merci beaucoup

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