Array aus AppDelegate im ViewController ausgeben!?

  • Array aus AppDelegate im ViewController ausgeben!?

    Nabend zusammen.

    Ich stehe gerade vor einem selten doofen Problem...in meiner AppDelegate baue ich mir ein Array aus einer JSON von meinem Server.

    In meinem ViewController möchte ich nun auf dieses Array zugreifen, aber ich bekomme immer nur (NULL) ausgegeben. Gebe ich es in der AppDelegate aus, dann gibt es kein Problem.

    Meine AppDelegate.h gekürzte Version.

    Quellcode

    1. @interface AppDelegate : UIResponder <UIApplicationDelegate,UITabBarControllerDelegate> {
    2. NSMutableData *responseData;
    3. NSMutableArray *jsonArray;
    4. }
    5. @property (nonatomic, retain) IBOutlet UIWindow *window;
    6. @property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
    7. @property (nonatomic,retain) IBOutlet UITabBarController *tabBarController;
    8. @property (nonatomic, retain) NSMutableArray *jsonArray;


    Meine AppDelegate.m gekürzte Version.

    Quellcode

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    2. {
    3. SBJsonParser *parser = [[SBJsonParser alloc] init];
    4. NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:URL]];
    5. NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    6. NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
    7. jsonArray = [parser objectWithString:json_string error:nil];
    8. [self.window makeKeyAndVisible];
    9. return YES;
    10. }


    Mein ViewController.h kurze Fassung:

    Quellcode

    1. #import "AppDelegate.h"
    2. @interface HomeViewController : UIViewController {
    3. AppDelegate *delegate;
    4. NSMutableArray *jsonArray;
    5. }


    Und die ViewController.m in kurz;

    Quellcode

    1. - (void)viewDidLoad
    2. {
    3. [super viewDidLoad];
    4. jsonArray = [[NSMutableArray alloc] init];
    5. jsonArray = delegate.jsonArray;
    6. NSLog(@"%@", jsonArray);
    7. }

    ***In dem Fall hier, bekomme ich ein leeres Array ausgegeben***
    Habe es auch mit:

    Quellcode

    1. jsonArray = [[NSMutableArray alloc] initWithArray:delegate.jsonArray];

    versucht.

    Ich habe mir sogar eine neue Methode angelegt, die ich mit einem UIButton zu einem späteren Zeitpunkt aufrufe, aber auch da: (NULL)

    Ich weiss einfach nicht, wo ich blödsinn gebaut habe.

    Kann mir jemand da weiterhelfen? ISt bestimmt nur eine Kleinigkeit, wie ich das kenne, aber man kennt es ja: Manchmal sieht man den Wald vor lauter Bäumen nicht und auch Google hilft mir heute nicht weiter...

    Greezy
    Runter kommen sie immer - bleibt nur die Frage: Wie?
    "Fliegt der noch? " "Na klar!" "Wie weit denn?" "Kommt drauf an wie hart du ihn wirfst!"
    ActionScript ? Wenn es sein muss!
  • Musst Du nicht irgendwo die Referenz auf das Application Delegate setzen? Ich sehe das bei Dir nirgends im Code und meiner Meinung nach ist das Delegate im HomeViewController Nil.


    Ungefähr so [[UIApplication sharedApplication] delegate]


    Oder hab ich da was falsch verstanden?
  • Das erzeugen des array hat im appdelegate nichts verloren. Warum liest du Dir nicht mal endlich was zum MVC durch wie dir schon öfter nahegelegt wurde? Sorry aber mir kommt es so vor als wolltest du gar nichts lernen und dich entwickeln.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)