- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我使用 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和 What is NSSearchPathForDirectoriesInDomains?了解 NSSearchPathForDirectoriesInDomain 函数,但我仍然不清楚。
UserDomainMask
是否会根据项目所在的系统和用户返回正确的路径。如果是这样,为什么我会收到这样的错误?
他们说返回的路径(存储在文件路径中)将是路径/Users//Library/Application Support/iPhone Simulator/User/Application//Documents where
是当前登录到运行模拟器的 Mac OS X 系统的用户名,是应用程序的唯一 ID
任何人都可以帮助我,了解为什么我会收到这样的错误。
最佳答案
根据您的要求没有源代码并且您显示异常所以我们有这些写作和阅读的途径。并分享您使用的是什么?
文件
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
图书馆
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *libraryDirectory = [paths objectAtIndex:0];
缓存目录
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *cachePath = [paths objectAtIndex:0];
BOOL isDir = NO;
NSError *error;
if (! [[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) {
[[NSFileManager defaultManager] createDirectoryAtPath:cachePath withIntermediateDirectories:NO attributes:nil error:&error];
}
对于阅读和写作,您可以使用该路径。有关更多信息,请参阅此 Answer
关于ios - NSSearchPathForDirectoriesInDomains NSUserDomainMask,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16561779/
我使用 URLConnection 从 url 下载文件并将该数据存储到文档目录中的文件中。当我收到响应时,当 didReceiveResponse: 方法被调用时,我创建文件并以这种方式移动到该文件
在 iOS 上查找本地可写 Library 目录位置的常用方法是 NSSearchPathForDirectoriesInDomains ,像这样: NSString *thedir = NS
我有一行代码: var path: NSArray = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMa
我是一名优秀的程序员,十分优秀!