Xcode:模拟器iPhone的目录文件

24

我想在项目中的资源文件"file.txt"中写入字符串。我尝试写入字符串,但没有成功,以下是我的代码。

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath =  [documentsDirectory stringByAppendingPathComponent:@"file.txt"];
NSError *error;
[outputString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];

我想使用 Xcode 模拟器来写入这个文件,而不是使用真实设备。

8个回答

49

我不确定您是否能够在您的捆绑包中写入文件,但您可以像代码一样保存到您的文档目录中。为什么不尝试这个呢?

使用相同的代码,您将会在以下路径找到您的文件:

/Users/YOURUSER/Library/Application Support/iPhone Simulator/IOSVERSION/Applications/APPID/Documents/file.txt


如何获取APPID? - Pierre de LESPINAY

19

XCode 6和iOS 6引入了变化,这使得情况变得棘手。

文档目录现在隐藏在:

~/Library/Developer/CoreSimulator/Devices/<some-id>/data/Containers/Data/Application/<some-other-id>

似乎每次应用程序启动时位置都会改变,因此很难进行跟踪。我从这篇文章中借鉴了一条简单的技巧,将其收录在下面方便大家使用:

#if TARGET_IPHONE_SIMULATOR
// where are you?
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
#endif

例如,将以下内容添加到您的applicationDidFinishLaunching方法中,应该会更容易!

如果您想了解更多细节,请查看原始文章

NB:我知道这个问题很老,但是,嗯,我在搜索时找到了它,因此我认为添加一个更新的答案可能会为我们中的一些人提供帮助!


15

模拟器中您的应用程序的文档目录位于:

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents

8
在您的应用程序中的任何断点处输入“po NSHomeDirectory()”并在调试器中停止。使用Finder的“前往”>“前往文件夹”功能直接跳转到该位置。 如何使用调试器中的“po NSHomeDirectory()”命令显示当前应用程序主目录的路径

2

使用这里提供的示例代码,它将不会写入您的资源文件夹,而是写入模拟器的文档文件夹中。实际上,在设备上您应该写入该文件夹,但由于您提到只想在模拟器上进行此操作,因此可以使用:

filePath = [[NSBundle mainBundle] bundlePath] stringByAppendingPathComnponent:@"Resources"]

但是,在一个运输应用程序中不要这样做,它会失败。


我不确定你在这里询问的是什么 - 什么接口类型? - Scott Little
一切正常,我没有在文件路径之前写“*”。 - cyclingIsBetter

1

将此内容粘贴到终端中。

open ~/Library/Application\ Support/iPhone\ Simulator/

0
在gdb中,停止进程并粘贴它,然后Documents的位置将被打印出来。 [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]
 po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]

0
如果您正在使用Xcode 7或更高版本,请按照以下步骤操作:
文档目录:
file:///Users/codercat/Library/Developer/CoreSimulator/Devices/YourProjectDict/data/Containers/Data/Application/(sample digit)7F53CFB3-C534-443F-B595-62619BA808F2/Documents/your file located here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接