gpt4 book ai didi

ios - NSSearchPathForDirectoriesInDomains NSUserDomainMask

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:08:29 26 4
gpt4 key购买 nike

我使用 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_OSWhat 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com