使用 URLConnection 我正在从 url 下载文件并将该数据存储到文件目录中的文件中。当我收到响应时,当调用 didReceiveResponse: 方法时,我创建文件并以这种方式移动到该文件的末尾:
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:self.fileName];
NSLog(@"filepath is %@",filePath);
[[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil];
file = [[NSFileHandle fileHandleForUpdatingAtPath:filePath] retain];
[file seekToEndOfFile];
其中 File 是 NSFileHandle 类的对象。稍后在接收数据时,每当调用 didReceiveData:(NSData *)data 方法时,我都会以这种方式将接收到的数据存储到文件中:
[file seekToEndOfFile];
[file writeData:data];
最后,我以这种方式关闭 connectionDidFinishLoading: 方法中的文件:
[file closeFile];
当我在我的系统中构建和运行时它正在工作。但是当我复制到另一个系统并尝试构建时,我得到了这个错误:
Terminating app due to uncaught exception `'NSFileHandleOperationException'`, reason: '*** `-[NSConcreteFileHandle seekToEndOfFile]: No such file or directory'`
我参考了http://www.techotopia.com/index.php/Working_with_Directories_on_iPhone_OS和 什么是 NSSearchPathForDirectoriesInDomains?了解 NSSearchPathForDirectoriesInDomain 功能,但我仍然不清楚。
将UserDomainMask
根据项目所在的系统和用户返回正确的路径。如果是这样,为什么我会收到这样的错误?
他们说返回的路径(存储在文件路径中)将是路径 /Users//Library/Application Support/iPhone Simulator/User/Application//Documents 其中
是当前登录到运行模拟器的 Mac OS X 系统的用户的名称,并且是应用程序的唯一 ID
谁能帮助我,了解为什么我会收到这样的错误。