我有一个Mutable数组,我用一些字符串填充它。但是当我离开视图(导航控制器)并重新打开它时,数组为空。每次离开视图时,我的Mutable Array都会被清空。
if([name_Recipe isEqualToString:@""])
{
NSLog(@"Nothing");
}
else
{
[favoritesArrayDetail addObject:name_Recipe];
NSLog(@"%@", [NSString stringWithFormat:@"%@", favoritesArrayDetail]);
}
答案 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];
}