嘿嘿,我试图与另一个xib共享一个NSMutableArray。根据James Brannan的教程(http://www.vimeo.com/12164589),cartList.codigo是来自共享类的NSMutableArray。
当我算上它时,它给了我1.但是当我加载另一个视图时,给我0。
怎么了?
查看添加:
self.produtoCodigo = [[NSMutableArray alloc]init];
[self.produtoCodigo addObject:@"aa"];
CartViewController *carrinho = [[CartViewController alloc] initWithNibName:@"CartViewController" bundle:[NSBundle mainBundle]];
CartList *lista = [[CartList alloc] init];
carrinho.cartList = lista;
carrinho.cartList.codigo = self.produtoCodigo;
NSLog(@"QTD %i", [carrinho.cartList.codigo count]);
想要加载添加项目的视图:
- (void) viewDidAppear:(BOOL)animated {
self.produtoCodigo = self.cartList.codigo;
NSLog(@"%i", [self.produtoCodigo count]);
[super viewDidLoad];
}
我在两者中加载CartList类。
谢谢!
答案 0 :(得分:1)
我的猜测是你没有保留阵列,只是分配它。
您是否在视图中保留了数组,如下所示 -
@property (nonatomic, retain) NSMutableArray * produtoCodigo;
“retain”为您的视图控制器提供阵列的所有权,您可以使用它。
因为我没有最好的代码可以提供帮助。
SHANI
更新 -
确定。你保留它但现在我看到“produtoCodigo”数组被保留但你没有在视图控制器中传递数组。
似乎你可以做两件事:
将viewController“produtoCodigo”传递给视图“produtoCodigo”。
carrinho.produtoCodigo= self.produtoCodigo;
如果您已将数组传递给“cartList”,则删除视图“produtoCodigo”数组,geter和seter(@synthesize& @property)。并且在视图中加载了你可以:
produtoCodigo =[NSMutableArray arraryWithArray: self.cartList.codigo];
或者如果您以后需要使用它,您可以:
produtoCodigo =[NSMutableArray alloc]initWithArray: self.cartList.codigo];
并且不要忘记稍后在第二个选项中发布它。
希望这次能帮助
SHANI