无论如何从"createFileAtPath"获取更详细的错误数据我有点期待NSError?目前我正在使用BOOL返回值.
success = [fileMan createFileAtPath:fileOnDisk contents:dBuffer attributes:nil];
if(success == YES) NSLog(@"FileCreated");
else {
NSLog(@"ERROR: Failed to create file");
return 1;
}
Run Code Online (Sandbox Code Playgroud)
加里
Jar*_*die 55
我同意......我希望有一个接受NSError的函数!
在这种情况下返回的错误通常是声明的POSIX错误之一errno.h(errno作为Cocoa或Foundation标头的一部分自动包含在内).
要查看错误,请使用strerror函数from errno.h并引用全局errno整数,该问题发生时由低级POSIX io函数设置:
if (![fm createFileAtPath:@"/etc/foobar.txt" contents:data attributes:nil])
{
NSLog(@"Error was code: %d - message: %s", errno, strerror(errno));
}
// output will be: Error was code: 13 - message: Permission denied
Run Code Online (Sandbox Code Playgroud)
错误代码常量列表列在Cocoa的错误处理编程指南中(除了errno.h头文件本身).
你不应该使用那种方法; 他们忘了将它放在主文档(!)中,但如果您阅读Apple头文件,则会发现此评论:
/*这里提供了这些方法以实现兼容性.返回NSErrors的NSData上的相应方法应被视为从NSData创建文件或将文件内容检索为NSData的主要方法.*/
所以,相反,Apple希望你使用它(从测试开始,它看起来功能完全相同 - 除了它位于一个你从未想过要寻找它的奇怪类中(我想创建一个空文件). ..所以我必须...实例化一个nil NSData对象?什么?)它有一个NSError对象):
| 归档时间: |
|
| 查看次数: |
7082 次 |
| 最近记录: |