Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa 将空NSArray保存到磁盘_Cocoa_Nsarray - Fatal编程技术网

Cocoa 将空NSArray保存到磁盘

Cocoa 将空NSArray保存到磁盘,cocoa,nsarray,Cocoa,Nsarray,我有一个NSMutableArray。它可以是空的,也可以有许多propertyList对象(在我的例子中,只有NSNumber对象)。 我想以xml格式将其保存到磁盘,所以我使用 // In the interface @property (nonatomic, retain) NSMutableArray *myArray; // In the implementation if ([self.myArray writeToFile:pathToFile atomically:YE

我有一个NSMutableArray。它可以是空的,也可以有许多propertyList对象(在我的例子中,只有NSNumber对象)。 我想以xml格式将其保存到磁盘,所以我使用

// In the interface    
@property (nonatomic, retain) NSMutableArray *myArray;

// In the implementation
if ([self.myArray writeToFile:pathToFile atomically:YES])
{
    // Success
} else {
    // Failure
}
如果在调用该方法时数组为空(初始化为空的NSMutableArray),则该方法返回NO,并且操作未完成,因此不会覆盖旧数据


如何将空数组写入磁盘?

您确定
self.myArray
实际上是一个“空初始化NSMutableArray”?对我来说,告诉空数组将其自身写入文件很好

您观察到的消息返回
NO
的行为与返回
nil
self.myArray
一致,这意味着它既不是空的也不是非空的,因为您根本没有数组。如果没有数组,则没有可发送消息的对象,因此消息返回(在本例中)
no


绝对确保
self.myArray
在您尝试向其发送消息时,实际上返回了一个数组(空数组或其他数组)。您用来验证的日志代码和输出对于您的问题来说是一件很好的事情。

您确定
self.myArray
实际上是一个“空的初始化NSMutableArray”吗?对我来说,告诉空数组将其自身写入文件很好

您观察到的消息返回
NO
的行为与返回
nil
self.myArray
一致,这意味着它既不是空的也不是非空的,因为您根本没有数组。如果没有数组,则没有可发送消息的对象,因此消息返回(在本例中)
no


绝对确保
self.myArray
在您尝试向其发送消息时,实际上返回了一个数组(空数组或其他数组)。您用来验证的日志代码和输出对于您的问题来说是一个很好的补充。

您是对的,我在重新实现代码时弄糟了,没有初始化属性,但因为我从未将阵列保存到磁盘,所以我只是认为我做了一些错误。您是对的,我在重新实现代码时弄糟了,没有初始化属性,但因为我从来没有将数组保存到磁盘,所以我只是认为我做了一些错误的事情。