我想知道是否有一种方法可以仅使用 C++ 获取对 iOS 上 Documents 文件夹的引用(即不使用 Objective-C 中的任何代码;这是因为它是一个仅在 C++ 中实现的框架,可以作为库添加在 iOS 项目中)。
如果可能,请在您的答案中提供代码。
使用下面的代码,我可以访问我的应用程序中的缓存文件夹。我认为,“/Library/Documents”中的文档文件夹或其他文件夹。
char *home = getenv("HOME");
char *subdir = "/Library/Caches/subdir";
home
+ subdir
= 完整路径
接下来,使用完整路径,您可以在 C++ 中执行通常的读取/写入操作
是的,您可以访问普通的 Unix API。在此处查看 Apple的iOS 联机帮助页。
获取路径(使用 Cocoa API),然后使用 API 将其转换为与 C++ 字符串兼容的表示,例如:CFStringGetFileSystemRepresentation
、、 CFURLGetFileSystemRepresentation
或-[NSString fileSystemRepresentation]
。
就像是:
// you may need to wrap this in an autorelease pool
NSArray * paths(NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES));
const char* const path([[paths objectAtIndex:0] fileSystemRepresentation]);
if (0 == fsrep) {
uh-oh
}
const std::string result(path);
然后你可以简单地把它放在它自己的 ObjC++ 翻译中并result
从函数中返回(这对你的 C++ 源代码的其余部分是可见的)。