从原生 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 代码读取项目目录中的文件?的主要内容,如果未能解决你的问题,请参考以下文章

IOS 读取项目中的plist文件

如何从 React JS 的 react 项目的公共目录中的文件中读取 xml?

java中如何从当前项目中读取运行另一项目中的配置文件?

springboot项目 从FTP服务器下载文件到本地,并读取文件中的内容代码示例(亲测可用)

springboot项目 从FTP服务器下载文件到本地,并读取文件中的内容代码示例(亲测可用)

用Cordova把react app 打包成原生的iOS项目