ios - NSFileHandle fileHandleForWriting 返回 nil,错误代码 24

标签 ios file-io nsfilehandle

我的应用程序中有一个方法可以将字符串写入文件末尾:

-(void)log:(NSString *)str
{
  if (![[NSFileManager defaultManager] fileExistsAtPath:self.logPath])
    [[NSFileManager defaultManager] createFileAtPath:self.logPath contents:nil attributes:nil];

  NSError *err = nil;
NSFileHandle *myHandle = [NSFileHandle fileHandleForWritingToURL:[NSURL fileURLWithPath:self.logPath] error:&err];
if (!myHandle)
    NSLog(@"Failed to write file - %@", err.localizedDescription);
  [myHandle seekToEndOfFile];
  [myHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]];
  [myHandle closeFile];
}

它工作了一段时间然后开始失败; fileHandleForWritingToURL 返回 nil。我得到的错误是 NSCocoaErrorDomain 错误 24。但我无法在任何地方找到任何对此错误的引用。谷歌没有帮助。有没有人见过这个?我做错了什么吗?

最佳答案

我的感觉是 NSCocoaErrorDomain 被映射到 UNIX errno 值,而 errno 24 是“太多打开的文件”。仔细看看 NSFileHandle class reference .还有,

[myHandle seekToEndOfFile]; [myHandle writeData:[str dataUsingEncoding:NSUTF8StringEncoding]]; [myHandle 关闭文件];

应该是你的其他情况

if (!myHandle)

测试。

关于ios - NSFileHandle fileHandleForWriting 返回 nil,错误代码 24,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18541790/

相关文章:

ios - 使用 AutoLayout 添加带有内容的 UIViewController 时,内容动画不起作用

ios - 有没有办法在 AFNetworking 2.0 中简化这样的代码?

file-io - 如何在 Opa 中进行文件 I/O?

cocoa - 在 Cocoa 中通过 TCP 发送大文件的最佳方式

objective-c - 如何从巨大的文本文件中读取文本 block ?

ios - 如何 NSFileHandle 从另一个应用程序获取的文件

ios - 编写通用代码并在整个项目中使用它的最佳方式是什么

objective-c - 我应该在哪里以及如何实例化一个将在 IOS 应用程序中全局使用的对象?

java - 如何在Java中从src/test/resources读取excel文件

c - 读取字符串时如何排除空终止符?