24

我想在文件“file.txt”中写入一个字符串:我的项目中的这个文件(用于 Iphone)在资源中;我尝试在这个文件中写一个字符串,但它不起作用,我显示我的代码。

 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 写这个文件,而不是用设备

4

8 回答 8

49

我不确定你是否能够在你的包中编写,但你可以在你的 Documents 目录中而不是像你的代码那样。你为什么不试试这个?

使用相同的代码,您将在以下位置找到您的文件:

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

于 2011-04-08T09:28:31.793 回答
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方法中,应该会更容易!

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

注意:我知道这个问题很老,但是我在搜索时发现了它,所以我认为添加一个更新的答案可能会对我们中的一些人有用!

于 2014-12-07T18:21:26.620 回答
15

模拟器中应用程序的 Documents 目录位于:

~/Library/Application Support/iPhone Simulator/YOUR-IOS-VERSION/Applications/UNIQUE-KEY-FOR-YOUR-APP/Documents
于 2011-04-08T09:29:18.317 回答
8

在您的应用程序中的任何位置处停在断点处,然后在调试器中键入“po NSHomeDirectory()”。使用 Finder 的 Go > Go To Folder 功能直接跳转到那里。 如何

于 2016-06-08T09:15:44.447 回答
2

使用您在此处的示例代码,它不会写入您的 Resources 文件夹,而是写入模拟器的 Documents 文件夹,这实际上是您应该在设备上编写的位置,但正如您提到的,您只想在模拟器上执行此操作,你可以使用

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

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

于 2011-04-08T09:34:00.200 回答
1

将此粘贴到终端中。

open ~/Library/Application\ Support/iPhone\ Simulator/
于 2014-01-16T16:05:01.463 回答
0

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

 po [[[NSFileManager defaultManager] URLsForDirectory:9 inDomains:1] lastObject]
于 2015-01-27T07:29:10.420 回答
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
于 2016-02-01T07:34:28.577 回答