Objective c 存储数组中的数字消失

Objective c 存储数组中的数字消失,objective-c,nsmutablearray,retain,nsnumber,Objective C,Nsmutablearray,Retain,Nsnumber,因此,我将NSNumber对象的NSMutableArray存储到文件“times.plist”中,然后在启动时加载并保留它,NSLog显示正确的值,但稍后[times count]等于0。为什么这些数字正在消失 times = [[NSMutableArray alloc] initWithObjects:[[NSNumber alloc] initWithFloat:time],nil]; ... [times writeToFile:@"times.plist" atomically:Y

因此,我将NSNumber对象的NSMutableArray存储到文件“times.plist”中,然后在启动时加载并保留它,NSLog显示正确的值,但稍后[times count]等于0。为什么这些数字正在消失

times = [[NSMutableArray alloc] initWithObjects:[[NSNumber alloc] initWithFloat:time],nil];
...

[times writeToFile:@"times.plist" atomically:YES];
...

times = [[NSMutableArray arrayWithContentsOfFile:@"times.plist"] retain];
NSLog(@"%f",[[times objectAtIndex:0] floatValue]);

好吧,笨蛋。永远不要做我做过的事。在我的初始阶段;方法我已经用以下代码启动了我的时间数组:

times = [[NSMutableArray alloc] initWithObjects:nil];
我试图用以下方法恢复它们:

times = [[NSMutableArray arrayWithContentsOfFile:@"times.plist"] retain];

但我在启动它之前就恢复了它,每次都会被删除。从我的错误中吸取教训,检查您的初始顺序;方法。始终。

从给定的代码很难说,但最有可能的情况是,您将一个新数组分配给
时间
,该数组位于您知道它具有正确内容的点和它为空的点之间。或者您可能会调用
[times removeAllObjects]
,但这似乎更像是您注意到的。如果您要使用
arrayWithContentsOfFile
,甚至不需要使用
initWithObjects对其进行初始化。