离开View后NSMutableArray为空

时间:2013-08-04 16:50:20

标签: iphone xcode nsmutablearray gets

我有一个Mutable数组,我用一些字符串填充它。但是当我离开视图(导航控制器)并重新打开它时,数组为空。每次离开视图时,我的Mutable Array都会被清空。

if([name_Recipe isEqualToString:@""])
{
    NSLog(@"Nothing");
}
else
{
    [favoritesArrayDetail addObject:name_Recipe];
    NSLog(@"%@", [NSString stringWithFormat:@"%@", favoritesArrayDetail]);
}

2 个答案:

答案 0 :(得分:0)

这是因为当您离开视图时,视图控制器将与其所有成员变量一起被释放。如果你仍然想要访问数组,你需要在其他地方声明它,或者让它静止。

编辑:由于每次返回视图时都会调用viewDidLoad,因此[NSMutableArray new]会将数组重置为空数组。您只想在尚未创建数组时调用该行代码。

例如,你可以这样做:

if (!favoritesArrayDetail) //Only do this code if the array is nil.
    favoritesArrayDetail = [NSMutableArray new];

答案 1 :(得分:0)

将您的数组声明为属性。

@property (nonatomic, copy) NSMutableArray *favoritesArrayDetail;

在viewDidLoad中:

if (!favoritesArrayDetail)
{
    favoritesArrayDetail = [NSMutableArray new];
}