当我使用NSBundle时:
NSString *path1 = [[NSBundle mainBundle] bundlePath];
path1成立
@"/Users/username/Library/Application Support/iPhone Simulator/7.0.3-64/Applications/2EDB/appname.app"
当我使用CFBundle时:
CFURLRef path2 =CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle());
path2成立
@"file:///Users/username/Library/Application%20Support/iPhone%20Simulator/7.0.3-64/Applications/2EDB/appname.app/"
是否可以使用CoreFoundation等效项生成与path1相同的字符串? (没有使用“ file://”和“%20”作为适当的空格。)还是我需要做一些额外的处理来删除这些文件?我需要在仅c ++类中使用它。
最佳答案
第一个给您一个字符串,第二个给您一个URL。使用CFURLCopyFileSystemPath
函数从文件URL获取正确的文件路径。
CFStringRef filepath = CFURLCopyFileSystemPath(path2, kCFURLPOSIXPathStyle);