从原生 iOS 代码读取项目目录中的文件?
Posted
技术标签:
【中文标题】从原生 iOS 代码读取项目目录中的文件?【英文标题】:Read file in project directory from native iOS code? 【发布时间】:2016-06-06 19:39:36 【问题描述】:我有一个 react-native 应用程序,它在一个名为 settings.json
的文件中有一些设置。我想从我的原生 ios 代码中读取文件中的一项设置。我尝试了以下代码:
NSFileManager *filemgr;
NSString *currentpath;
filemgr = [NSFileManager defaultManager];
currentpath = [filemgr currentDirectoryPath];
NSLog(@"Value of filePath = %@", currentpath);
但这每次都会记录路径/
。如何获得我的实际项目的路径,如下所示:/Users/currentUser/Documents/development/ReactProject
我显然无法将它硬编码到我的应用程序中。如何获取当前react-native
项目的目录?
【问题讨论】:
你想要文档目录,NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject
。
【参考方案1】:
您也不是真的希望它从您的项目路径中获得,因为在正常情况下,您的应用无法使用它(它在沙盒中)
我认为你最想做的事情是
-
将文件放入您的应用程序包中(只需确保它在 Xcode 组中并分配给您的应用程序目标)。
现在它将部署在您应用程序包中的任何设备上。此处为只读。
使用这个阅读它:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"json"];
【讨论】:
【参考方案2】:我不是很喜欢 React-Native 应用程序,但这在我看来是一个与 iOS 项目相关的问题。
记录的/
在这种情况下指的是应用程序文件夹/Users/currentUser/Documents/development/ReactProject
。
所以尝试将文件作为字符串读取:
NSString *settings = [[NSBundle mainBundle] pathForResource:@"settings" ofType:@"json"];
NSLog(@"Content of settings: %@", settings);
还要确保该文件已添加到您的项目中,并将其链接到您的目标的文件列表,方法是在文件属性的“目标成员资格”中选择正确的目标,如图所示。
希望这会有所帮助。
【讨论】:
以上是关于从原生 iOS 代码读取项目目录中的文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 React JS 的 react 项目的公共目录中的文件中读取 xml?
springboot项目 从FTP服务器下载文件到本地,并读取文件中的内容代码示例(亲测可用)