0

我注意到 CCFileUtils::getWriteablePath() 返回的是 CacheDirectory,而不是 DocumentDirecotry,它假设根据注释。这样做有什么正当理由吗?还是只是一个错误?这是来自 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;
}
4

1 回答 1

0

好的,这是一个艰难的人生教训:不要期望 cocos2d 文档是准确的。;)

我个人认为该方法命名不当。如果它返回缓存目录,它应该在方法名称中说明。尤其是如果您考虑到当设备的存储内存不足时缓存目录可能会被清空,因此将存档游戏存储在那里是一个特别糟糕的主意。

还有其他可写路径,最常见的是 Documents 目录(用于用户文档)或 Application Support 目录(您必须在其中为您的应用程序创建一个子文件夹,并且您应该存储用户不应操作的文件)。

大多数开发人员只是将所有内容保存到 Documents,而实际上这并不是游戏存储文件的地方。游戏存档、游戏设置等不属于 Documents 目录,而是属于 Application Support。它们不是用户创建的、用户可修改的文档。

属于 Documents 的将是用户拍摄的屏幕截图、用户设计的关卡以及用户自己创建的任何其他内容,并且可能希望在应用程序之外使用或修改。

于 2013-05-10T08:37:12.580 回答