如何在iOS,模拟器和设备上读/写文件?

Rob*_*Rob 10 objective-c read-write nsfilemanager ios

因为我需要在我的应用程序启动时读取文件并在使用它时有时写入,我试图通过以下方式达到它:

NSString *dataFile = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"];
NSLog(@"%@",dataFile);
Run Code Online (Sandbox Code Playgroud)

而应该在我的项目文件夹中的文件是在模拟器文件夹中:

2012-06-13 17:36:56.398 MyFileApp [610:15203]/Users/Rob/Library/Application Support/iPhone Simulator/5.1/Applications/1FFD4436-DCCA-4280-9E47-F6474BEE0183/MyFileApp.app/myFile.txt

因此,如果我想使用模拟器和真实设备进行读/写,我该怎么办?

谢谢你的建议

Oma*_*ith 21

要从捆绑包中读取文件,请执行以下操作

NSString *dataFile = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"txt"];
Run Code Online (Sandbox Code Playgroud)

从沙盒存储中读取它(文档)

NSString *docPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/YourFile.txt"];
NSString *dataFile = [NSString stringWithContentsOfFile:docPath 
                                           usedEncoding:NSUTF8StringEncoding 
                                                  error:NULL];
Run Code Online (Sandbox Code Playgroud)

写入文档文件夹

NSString *docPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/YourFile.txt"];
[dataFile writeToFile:docPath 
          atomically:YES 
            encoding:NSUTF8StringEncoding 
               error:NULL];
Run Code Online (Sandbox Code Playgroud)

请注意,您将无法在应用程序的bundle文件夹中写入该文件

  • 不,这个代码将适用于模拟器和设备:) (2认同)