我想知道是否有办法在iOS上使用C ++获取对Documents文件夹的引用(即没有在Objective-C中使用任何代码;这是因为它是一个仅在C ++中实现的框架,可以添加作为iOS项目中的库。)
如果可能,请在答案中提供代码。
答案 0 :(得分:7)
使用下面的代码,我可以访问我的应用程序中的缓存文件夹。我认为,文件夹在“/ Library / Documents”中,或者其他一些文件夹。
char *home = getenv("HOME");
char *subdir = "/Library/Caches/subdir";
home
+ subdir
=完整路径
接下来,使用完整路径,您可以在C ++中进行通常的读/写操作
答案 1 :(得分:1)
是的,您可以访问普通的Unix API。请参阅Apples iOS manpages here。
答案 2 :(得分:1)
获取路径(使用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 ++源是可见的)。