Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/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
iPhone-将字典写入文件:处理错误_Iphone_File_Error Handling_Nsdictionary - Fatal编程技术网

iPhone-将字典写入文件:处理错误

iPhone-将字典写入文件:处理错误,iphone,file,error-handling,nsdictionary,Iphone,File,Error Handling,Nsdictionary,将NSDictionary保存到文件时,请使用: - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag 可以返回是或否 有一些方法可以写入接受NSError参数的文件。 就NSDictionary而言,这样的方法并不存在 因此,如果writeToFile方法返回NO,我怎么知道发生了什么呢?查看writeToFile:atomically:的文档,查看使用此方法时字典中可以包含哪些数据类型。如果包含不属于这些基本类型的对象(例如您

将NSDictionary保存到文件时,请使用:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag
可以返回是或否

有一些方法可以写入接受NSError参数的文件。
就NSDictionary而言,这样的方法并不存在


因此,如果
writeToFile
方法返回NO,我怎么知道发生了什么呢?

查看
writeToFile:atomically:
的文档,查看使用此方法时字典中可以包含哪些数据类型。如果包含不属于这些基本类型的对象(例如您自己的对象),则该方法将返回NO。在这种情况下,要保存这些类型的对象,您必须使用其他方法写入数据,例如,使用NSArchiver并使您的对象符合NSCoding协议。

我猜还有许多其他类型的错误会导致函数返回NO,不是吗?主要是您试图写出SDK不知道如何处理的对象(因为它不是可以处理的基本类型之一)好的,但是为什么这个方法和其他处理NSError对象的方法不同呢?苹果就是这样设计的。:-)使用NSDictionary的writeToFile的限制非常明确和直接。如果失败,很可能是因为有一个对象无法像该方法支持的基本对象那样“神奇地”写出。真的不知道为什么这个方法不支持NSError参数,而其他类(例如NSData)中的类似方法支持NSError参数。将其归为实施者的特权。:-)