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];
}
@end
Ce manager est accessible à tout mon code (avec extern) depuis une variable globale dans Commons.h :
@interface Commons
Manager *manager;
@end
Dans 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.