当我使用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);

09-06 22:47