当程序 初始加载比较多的纹理时候,
void Sprite::setSpriteFrame(const std::string &spriteFrameName)
{
SpriteFrameCache *cache = SpriteFrameCache::getInstance();
SpriteFrame *spriteFrame = cache->getSpriteFrameByName(spriteFrameName);
CCASSERT(spriteFrame, "Invalid spriteFrameName");
setSpriteFrame(spriteFrame);
}
然后create一个sprite的时候,会进入这里的断言。
或者
bool Sprite::initWithTexture(Texture2D *texture)
{
CCASSERT(texture != nullptr, “Invalid texture for sprite”);
Rect rect = Rect::ZERO;
rect.size = texture->getContentSize();
return initWithTexture(texture, rect);
}
进入这里的断言
通过查看代码前后文,发现进入这两个断言的可能,是一个纹理,被认为在内存中,但是确是空指针。(这里先声明一下:没有进行任何显示的调用回收纹理或者release纹理)
所以想请教一下技术人员,出现这个问题 是不是 内存已经溢出,或者导致出现这种纹理加载正常,调用确报空的情况什么?