Xcode构建IOS工程项目使用C/C++读写文件

前段时间完成了公司的mac平台Simulation工程,近期开始开发IOS平台的。目前遇到的问题就是之前在mac平台的相对路径读写方法,但在ios平台并不work。

顺便回顾一下mac平台通过绝对路径的方法:

  1. 通过设置Product -> Scheme -> Edit Scheme -> Run -> Options -> use local working directory,设置到你想开始使用绝对路径的文件夹,即可使用相对路径进行读写文件。
  2. 在Xcode界面,在文件导航栏到开 Products 下的黑色控制块,右键选择 “Show in Finder”,将你需要读写的文件放在此处即可。

上面是mac使用相对路径写的方法,回到IOS尝试了第二种方法,但是并不work。

项目背景:

工程语言是C和C++混写,在构建iOS项目时,选择的Object-C语言,但是直接导入C/C++工程文件,同样可以识别并编译的。我需要从文件读取需要执行的文件模块以及操作参数,对模块进行一系列算法处理并将结果写入文件。

根据查阅,可行的技术方案:

  1. 使用Object-C++(新建Object-C文件,修改后缀.m为.mm即可生效),使用 NSBundle 进行操作,NSBundle可以获取到当前路径,指定读写的文件。(具体参考其他教程。因为需要产生额外新的文件,不利于项目管理,于是我没有采用这种办法。)

  2. 使用C/C++读写文件

    中文网站关于这个的资料挺少的,于是我广泛搜索,找到这个宝贝:Writing to file in iOS using C/C++ ,他链接到另一个网页,解释IOS各个环境参数的含义:Development Chaos Theory 。参考上面两个博客就解决我的问题啦。下面大致介绍一下流程,详细内容见上面教程。

    在 Window -> Devices and Simulators -> 选择你的应用 -> click 设置 -> Download containers(将其保存至你显眼的路径) ,
    在这里插入图片描述比如这就是我下载保存的xcappdta文件,右键-》 显示包内容
    在这里插入图片描述
    进入AppData后,就可以看见下面四个文件夹(自行搜索这四个文件夹分别的用处),进入Documents把你想读的文件放进去。
    在这里插入图片描述

读写文件代码:

char buffer[256];

//HOME is the home directory of your application
//points to the root of your sandbox
strcpy(buffer,getenv("HOME"));

//concatenating the path string returned from HOME
strcat(buffer,"/Documents/myfile.txt");

//Creates an empty file for writing
FILE *f = fopen(buffer,"w");

//Writing something
fprintf(f, "%s %s %d", "Hello", "World", 2016);

//Closing the file
fclose(f);

最近才深刻体会,🔍大法好,All Questions will have answers.

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值