如何找出文件I / O操作失败的原因?

时间:2009-10-20 11:19:56

标签: iphone cocoa cocoa-touch

我用来写文件的几种方法会返回一个表示成功的BOOL,例如

的NSDictionary:

- (BOOL) writeToFile:(NSString *)path atomically:(BOOL)flag

的NSKeyedArchiver:

- (BOOL) archiveRootObject:(id)rootObject toFile:(NSString *)path

不知怎的,这在我的一个测试仪器上返回NO。这很好(嗯,不是真的),但无论如何都要找出为什么这些操作可能会失败?

1 个答案:

答案 0 :(得分:3)

现代方法是从(根对象|字典)创建NSData,然后使用writeToFile:options:error:writeToURL:options:error:将该数据写入所需的路径。这些方法通过引用返回NSError对象,其中包含对所发生事件的描述,包括(至少在某些情况下)用户可呈现的错误消息。

要创建表示字典的数据,请使用NSPropertyListSerialization(如果字典及其所有内容,一直是有效的property list)或存档(如果没有)。