gpt4 book ai didi

iphone - 每次重启 iPhone App 时 NSHomeDirectory 返回不同的路径

转载 作者:太空狗 更新时间:2023-10-30 03:17:58 24 4
gpt4 key购买 nike

我注意到每次我用 Xcode 重新启动应用程序时,NSHomeDirectory 都会返回不同的路径,显然即使我手动单击该图标也是如此,因为它不会加载文件的内容。令我惊讶的是,每次我重新启动应用程序时它都会给我一个不同的目录。这在模拟器和设备上都会发生,即使我使用“ForUser”方法也是如此。我的电话是这样的:

NSString* fullPath = [NSHomeDirectory() stringByAppendingPathComponent:@"test.file"];

NSString* fullPath = [NSHomeDirectoryForUser(@"MrX") stringByAppendingPathComponent:@"test.file"];

甚至

NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *path = [docsDirectory stringByAppendingPathComponent:@"test.file"];

两个应用程序启动的日志如下所示,注意 GUID 部分发生了怎样的变化:

loadCharacters: /var/mobile/Applications/ABE7E33E-439B-4258-8FC1-127A3CD00D87/test.file
loadCharacters: /var/mobile/Applications/71C02507-6347-4693-8CC1-537BE223179E/test.file

我做错了什么,或者我错过了什么?

解决方案:

起初我保存到 NSHomeDirectory 本身,而不是“Documents”子目录。由于 App 目录随每次部署而变化,但只有“Documents”目录中的文件被复制,因此每次部署后保存的文件都丢失了。然后我使用了“Documents”文件夹,但有人建议我应该把它放在“Documents”的子文件夹中,我只是这样做了但忘记创建文件夹,因此文件没有保存。我在这个上失败了两次。 :)

只需保存到 NSHomeDirectory() + "Documents/test.file"即可。

最佳答案

你做得对。每次将应用程序安装到模拟器或设备中时,它都会被放置到不同的目录中(我不确定为什么,但就是这样)。但是,它的所有目录结构都被移动到新位置。因此,您的相对路径将保持不变。

关于iphone - 每次重启 iPhone App 时 NSHomeDirectory 返回不同的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2154576/

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