我注意到CCFileUtils :: getWriteablePath()返回CacheDirectory,而不是DocumentDirecotry,它假设是根据注释。 这样做有什么正当理由吗?或者只是一个bug? 这是来自CCFileUtils.mm的代码
std::string CCFileUtils::getWriteablePath()
{
// save to document folder
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NsUserDomainMask,YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
std::string strRet = [documentsDirectory UTF8String];
strRet.append("/");
return strRet;
}
答案 0 :(得分:0)
好的,这是一个艰难的学习生活课:不要指望cocos2d文档是准确的。 ;)
就我个人而言,我觉得这个方法名字很糟糕。如果它返回缓存目录,它应该在方法名称中这样说。特别是如果你考虑cache directory may be emptied when the device is low on storage memory,那么在那里存储存档是一个特别糟糕的主意。
还有其他可写路径,最常见的是Documents dir(用于用户文档)或Application Support目录(您必须为应用程序创建子文件夹以及应该存储用户不应操作的文件的位置)。
大多数开发人员只是将所有内容保存到Documents,这实际上不是游戏存储文件的地方。保存游戏,游戏设置等不属于Documents目录,而是属于Application Support。它们不是用户创建的,用户可修改的文档。
属于Documents的内容将是用户截取的屏幕截图,用户设计的级别以及用户自己创建的任何其他内容,并且可能希望在应用程序外部使用或修改。