在xib之间丢失数据

时间:2011-01-12 13:41:35

标签: iphone objective-c

我试图向另一个xib传递NSMutableArray的一些数据。我创建了一个名为Gallery的NSObject类。我把它加载到两个视图上。

我正在加载填充NSMutableArray的XML。然后,当我进入第一个视图时,它完全填充NSMutableArray,并在NSLog上给我它的内容:

ProductPhotoGallery *telaGaleria = [[ProductPhotoGallery alloc] initWithNibName:@"ProductPhotoGallery" bundle:[NSBundle mainBundle]];

    Gallery *minhaGaleria = [[Gallery alloc] init];
    telaGaleria.galeria = minhaGaleria;
    telaGaleria.galeria.galeriaFotos =[[NSMutableArray alloc]init];

    TBXMLElement * nodeFotos = [TBXML childElementNamed:@"fotos" parentElement:rootXMLElement];

    TBXMLElement * nodeFoto = [TBXML childElementNamed:@"foto" parentElement:nodeFotos];

    while (nodeFoto) {

        NSString * urlFoto = [TBXML textForElement:nodeFoto];   
        [telaGaleria.galeria.galeriaFotos addObject:urlFoto];
        NSLog(@"%@", urlFoto);
        nodeFoto = [TBXML nextSiblingNamed:@"foto" searchFromElement:nodeFoto
                        ];
    }

    [telaGaleria release];

    NSLog(@"Array da Galeria %@", telaGaleria.galeria.galeriaFotos);

正确地告诉我,我加载了另一个视图:

-(IBAction) vaiGaleria{

    ProductPhotoGallery *telaDaGaleria = [[ProductPhotoGallery alloc] initWithNibName:@"ProductPhotoGallery" bundle:[NSBundle mainBundle]];

    // Puxando a view

    [self.navigationController pushViewController:telaDaGaleria animated:YES];

    [telaDaGaleria release];


}

所以,当另一个视图出现时,我设置在日志中显示数组:

- (void)viewDidLoad {

    self.galeria.galeriaFotos =[[NSMutableArray alloc]init];

    NSLog(@"ARRAY GALERIA DENTRO VIEW %@", self.galeria.galeriaFotos);

    [super viewDidLoad];
}

它给了我空值。那么,发生了什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

删除viewDidLoad中的第一行,它释放先前分配的数组并分配一个新数组。