Cocoa 将空NSArray保存到磁盘
我有一个NSMutableArray。它可以是空的,也可以有许多propertyList对象(在我的例子中,只有NSNumber对象)。 我想以xml格式将其保存到磁盘,所以我使用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
// 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
在您尝试向其发送消息时,实际上返回了一个数组(空数组或其他数组)。您用来验证的日志代码和输出对于您的问题来说是一个很好的补充。您是对的,我在重新实现代码时弄糟了,没有初始化属性,但因为我从未将阵列保存到磁盘,所以我只是认为我做了一些错误。您是对的,我在重新实现代码时弄糟了,没有初始化属性,但因为我从来没有将数组保存到磁盘,所以我只是认为我做了一些错误的事情。