在cocos2d-x游戏的编写中,因为要测试一个功能向后修改了系统时间,再把时间改回来之后发现无论怎么修改代码都不会起作用。
原因是因为Visual Studio 2013保存的编译缓存。
举一个例子:
时间:2015年1月1日
代码:执行a();
执行了一次编译,编译缓存时间是2015年1月1日。
由于某种需求原因 你再测试的时候修改了系统时间(比如连续登录领取奖励,会员天数等等)。
时间:2015年1月2日
代码:执行a();
执行了一次编译,编译缓存时间是2015年1月2日。
你的测试通过了 把系统时间调回,这时候需求有修改(比如增加,修改了精灵图片), 你添加了一个b()方法。
时间:2015年1月1日
代码:执行a();
执行b();
执行了一次编译,编译缓存时间是2015年1月1日。
这时候我们就会发现,b()方法是没有被执行的。
原因在于Visual Studio 2013会运行最后一次时间的编译缓存,所以你执行的代码会是系统时间在2015年1月2日的代码,而2015年1月1日的编译就被忽略了。同样把系统时间调后一个小时,一分钟也是同理。
解决方法:把你所写的项目重新生成(不必重新生成解决方案)。
如果有其他解决方式,或是Visual Studio 2013的设置可以解决这个问题,欢迎大家讨论。
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2013anzhuangwenti/2020/0725/5167.html