开发者

How to copy an array to appdelegate array and then retrieve it again elsewhere?

I want to store the array of urls in my appdelegate array i.e. logoArray from myMutableArray and then use it in other viewcontroller, but i am uable to copy as may be i am doing shallow copy, i have tried othes ways also like initwithArray:copyItems.

code:-

@class FirstViewController;
开发者_开发百科
@interface AppDelegate_iPhone : NSObject <UIApplicationDelegate> {
    UIWindow *window;

    FirstViewController *viewController;

    NSMutableArray *logoArray;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) NSMutableArray *logoArray;

@end


// NO initialization of logoArra is done in .M file    


@class AppDelegate_iPhone;    
@interface FirstViewController : UIViewController {

    NSMutableArray *array;

    NSString *logoString;
    AppDelegate_iPhone *appDelegate;

}



@end



@implementation FirstViewController


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];

    int x=5,y=10;

    UIApplication *app = [UIApplication sharedApplication];
    appDelegate=app.delegate;

    NSLog(@" Array ====== %d",[appDelegate.logoArray count]);

    array = [[NSMutableArray alloc]initWithArray:appDelegate.logoArray];

    NSLog(@"array at 0 ===== %@",[array objectAtIndex:0]);


    for (int i=0; i<[array count]; i++) {

        logoString = [array objectAtIndex:i];
        NSLog(@"%@",logoString);
        UIImage *imageFromUrl = [UIImage imageWithContentsOfFile:[NSURL fileURLWithPath:logoString]];



        UIImageView *imgView = [[UIImageView alloc] initWithImage:imageFromUrl];
        [imgView setFrame:CGRectMake(x, y, 196, 90)];
        [self.view addSubview:imgView];


    //  UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onTapImage)];
    //  [imgView addGestureRecognizer:tgr];
    //  [tgr release];

        //Do the rest of your operations here, don't forget to release the UIImageView
        x = x + 200;
    //  [imgView release];

    }


}





@class Litofinter,AppDelegate_iPhone;

@interface ParsingViewController : NSObject<NSXMLParserDelegate> {

    NSString *myString;
    NSMutableArray *myMutableArray;
    Litofinter *obj;
    NSString *currentElement;

    AppDelegate_iPhone *appDelegate;


}

@property(nonatomic, retain) NSString *myString;
@property(nonatomic, retain) NSArray *myMutableArray;

@end





#import "ParsingViewController.h"
#import "Litofinter.h"
#import "AppDelegate_iPhone.h"


@implementation ParsingViewController

@synthesize myMutableArray, myString;

- (void)parserDidStartDocument:(NSXMLParser *)parser
{
    myMutableArray = [[NSMutableArray alloc]init];

}


// I have parsed here my XML and array gets stored in myMutableArray


- (void)parserDidEndDocument:(NSXMLParser *)parser
{
    UIApplication *app = [UIApplication sharedApplication];
    appDelegate=app.delegate;

    appDelegate.logoArray = [[NSMutableArray alloc]initWithArray:myMutableArray];

//  NSLog(@"appDelegate.logoArray count %d",[appDelegate.logoArray count]);

    for (Litofinter *lito in appDelegate.logoArray) {
        NSLog(@"Array Elements :----- %@",lito.cLogo);
    }
}


Personally I wouldn't create an array in a viewcontroller and then store it in the appdelegate. I'd be more inclined to create a model for the data ( a class that gets and stores the data and provides it to the view controllers).

this thread may help: iPhone: Using a NSMutableArry in the AppDelegate as a Global Variable

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜