Je suis en train de relayer cette question que j'avais posté il y a un jour. Quand j'ai décrit le problème avant que j'aie oublié certaines informations cruciales qui ont amené les gens à faire fausse route en essayant d'offrir une solution. J'espère que cela est mieux expliqué.Accès aux variables à travers quelques autres classes
J'ai un situatiion en Objective-C où je suis en train d'accéder à la variable d'un objet par un autre objet. Les classes (simplifié):
Ah
@interface A : NSObject {
NSMutableArray *someStuff;
}
@property (nonatomic, retain) NSMutableArray *someStuff;
@end
Am
@implementation A
@synthesize someStuff;
// blah, blah, blah
Ensuite, parce que je fais une application iPhone, il y a un délégué de l'application qui contient une variable de ce type d'objet :
AppDelegate.h
@interface AppDelegate : NSObject <UIApplicationDelegate> {
A *aPtr;
}
@property (nonatomic, retain) A *aPtr;
@end
AppDelegate.m
@implementation AppDelegate
@synthesize aPtr;
- applications
(booléen): (*) UIApplication didFinishLaunchingWithOptions d'application: (NSDictionary *) launchOptions {
unPtr = [[A alloc] init]; // bla, bla, bla
Puis, dans une autre classe (dans ce cas, un contrôleur de vue), je suis en train d'accéder 'someStuff' de cette manière:
AViewController.m
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSMutableArray *someArray = appDelegate.aPtr.someStuff;
Donc, le problème est que cela explose de belle façon. J'avais pensé que si vous faites la désignation @porperty, et le @synthesize dans l'implémentation, alors vous devriez pouvoir accéder directement aux variables car le compilateur crée réellement les fonctions get/set.
Je pense que je suis trop d'un drogué de java pour comprendre pourquoi cela ne fonctionnera pas. Quelqu'un peut-il m'éveiller?
Un grand merci,
Craig
essayez ceci, AppDelegate * appDelegate = (AppDelegate *) [[UIApplication sharedApplication] délégué]; NSLog (@ "aPtr:% @ \ nsomeStuff:% @", appDelegate.aPtr, appDelegate.aPtr.someStuff); – Ravin