-1

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

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

2 回答 2

0

将您的数组声明为属性。

@property (nonatomic, copy) NSMutableArray *favoritesArrayDetail;

在 viewDidLoad 中:

if (!favoritesArrayDetail)
{
    favoritesArrayDetail = [NSMutableArray new];
}
于 2013-08-05T07:27:49.987 回答
0

这是因为当您离开视图时,视图控制器连同其所有成员变量一起被释放。如果您希望仍然能够访问该数组,则需要在其他地方声明它,或使其成为静态。

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

例如,您可以这样做:

if (!favoritesArrayDetail) //Only do this code if the array is nil.
    favoritesArrayDetail = [NSMutableArray new];
于 2013-08-04T16:54:37.360 回答