有没有办法只使用纯 c 代码和一些 posix 之类的 api 将文件写入 iphone 文件系统?
我只发现了一些 Objective-C/Cocoa 的东西,我认为我不能只是将一些 Objective-C 代码片段混合到 .c 文件中。
最佳答案
Objective C 是纯 ANSI C 的纯超集。您可以将任何纯 C 代码放入任何 Objective C .m 文件中。 (相反的方法不起作用,因为编译器不知道使用语言超集编译 .c 文件。)
补充:反过来做的方法不是尝试直接将 Objective C 放入 C 文件中,而是将 Objective C 放入一个新的 Objective C .m 文件中,并使用 C 包装函数来调用它Objective C 方法也在该 .m 文件中。然后使用 C 文件中的 C 函数调用从该 C 文件调用 Objective C 文件的 C 包装函数,并让 Objective C 文件中的 C 包装函数调用 Objective C 方法。
大多数 C posix 调用在 iPhone 上正常工作,尽管有些如果它们试图到达安全沙箱之外是非法的(例如,您可能必须使用一些 Objective C 来确定 posix fopen() 调用的合法文件路径可以用。)
我采用了大型 C 应用程序并将它们包装在刚好足够的 Objective C 中,以便将它们与 Cocoa Touch UI 框架连接起来。值得几页。
关于纯 c/posix 风格的 iPhone 文件 IO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3994324/