我有以下问题:一个用 Objective-C 编写的 iOS 应用程序(像往常一样)使用了用 C 编写的部分代码。C 代码是应用程序的核心,用 Objective-C 编写的代码使用了作业由 C 完成并协调整个应用程序。
为了完成它的工作,C 代码从首选项文件中读取一些内容,该文件的名称被写入 C 文件中。是否有可能(在 C 代码中)在运行时而不是在编译时读取文件名?这个想法是用 Objective-C 修改一个字符串,然后让 C 代码读取那个字符串。
最佳答案
看起来您在 C 文件中有一个硬编码的文件名。那不是一个好的设计;在 iOS 应用程序中,你永远不知道你的路径名是什么,当前文件夹的概念在 GUI 应用程序中是困惑的。使文件名成为 C 函数的参数,并从 Objective C 端传递它以及完整路径。根据文件的位置,它可以在您的应用程序包中,或在文档文件夹中,或其他地方 - 您知道得更多。
是的,您可以将文件名设为变量而不是常量。变量数据类型为 char*
。
编辑回复:评论:要解决此问题,请尝试从 ObjC 端设置当前文件夹。在调用 C 函数之前,调用 [NSFileManager setCurrentDirectoryPath:]
,传递文件所在的文件夹(同样,我不知道它可能是什么)。然后硬编码的文件名就可以工作了。
关于ios - 有没有一种方法可以让 C 和 Objective-C 读取和编辑相同的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18986314/