Bienvenue sur le forum du blog iPhon.fr
Pensez à poster dans la bonne rubrique, respecter les propos des autres internautes, ne pas utiliser le langage SMS, et enfin, à utiliser la fonction 'Recherche' !
Et... Gardez le sens de l'humour, de la convivialité et de la décontraction. On n'est pas là pour se prendre la tête ! ;-)
Bonjour tout le monde,
Je vous explique mon problème :
J'ai une classe MyObject qui contient un attribut de type MyObject2 :
@interface MyObject : NSObject {
MyObject2 *myObject2;
}
@property (nonatomic, retain) MyObject2 *myObject2;
-(MyObject2 *) geObject2;
-(id) initMyObject;----
@interface MyObject2 : NSObject {
NSString *value;
}
@property (nonatomic, retain) NSString *value;
-(NSString *) getValue;
J'ai déclaré une classe Manager.h :
@interface Manager : NSObject {
NSMutableArray *myObjectsList;
}
@property (nonatomic, retain) NSMutableArray *myObjectsList;
-(MyObject*) getItem:(int)itemID;
-(id) initManager;Manager.m :
@implementation Manager
@synthesize myObjectsList;
- (id)initManager {
self = [super init];
if (self) {
//Controller
MyObject *myObject = [[MyObject alloc] initMyObject];
self.myObjectsList = [NSMutableArray arrayWithObjects:myObject, nil];
[myObject release];
}
return self;
}
-(MyObject*) getItem:(int)itemID{
return [self.myObjectsList objectAtIndex:itemID];
}
- (void)dealloc {
[myObjectsList release];
[super dealloc];
}
@endCe manager est accessible à tout mon code (avec extern) depuis une variable globale dans Commons.h :
@interface Commons
Manager *manager;
@endDans une classe de mon code je souhaite récupérer un élément du tableau à travers la variable globale Manager :
#import "Commons.h"
...
extern Manager *manager;
...
-(void) displayValue {
NSString *value = [[[manager getItem:1] geObject2] getValue];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Value is" message:value delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alert show];
[value release];
[alert release];
}Voila j'espère que c'est clair ![]()
Le problème est que l'application plante lors de l'appel au displayValue
Avec le debugger je regarde la variable value de myObject 2 depuis le myObject1 qui est lui même contenu dans le tableau du Manager et le debugger m'indique "out of scope".
Deux questions se posent alors :
- dans la méthode getItem comment sa se passe au niveau gestion mémoire ? l'ai-je fait d'une manière correcte ?
- que veux dire "out of scope" ?
Je vous remercie par avance de vos réponses
iwalid
Hors ligne
pour ton manager, utilise plutot un singleton décris tout en bas ici :
http://developer.apple.com/library/ios/ … 4-CH4-SW32
Après ca doit être [manager getItem:0], l'index commence à 0 dans un tableau
Et t'auras plus de réponse sur ipup
Hors ligne
merci beaucoup pour ton aide pierre, je prend note de ton conseil ![]()
Hors ligne
L'iPhone sur iPhon.fr, le blog de l'iPhone - blog iPad
iPhon.fr et son forum ne sont pas liés à Apple, Orange, SFR ou autres et les marques citées sont la propriété de leurs détenteurs respectifs.