ios 频繁创建远程动画 内存一直增加 直至闪退

private addAmin(data, puzzleNode: Node) {
let animParam = JSON.parse(data.animParam);
assetManager.loadRemote(data.animPlist, (err: Error, asset: Asset) => {
if (!err && asset) {
RemoteSpriteMgr.getTexture(data.animAtlas).then((texture: Texture2D) => {
this.createAnimationClip(texture,asset);
if (!!animParam.speed) {
this.animationClip.speed = animParam.speed;
} else {
this.animationClip.speed = 0.3;
}

      //添加动画
      let animNode = puzzleNode.getChildByName('animNode');
      let scale = new Vec3(1, 1, 1);
      if (!!animParam.size) {
        let size = 1 / animParam.size;
        scale = new Vec3(size, size, 1);
      }
      animNode.setScale(scale);
      let animation = animNode.getComponent(Animation);
      if (!!!animation) {
        animation = animNode.addComponent(Animation);
        animNode.addComponent(Sprite);
      }
      animation.addClip(this.animationClip, 'animationClip');

      //播放动画
      animation.play('animationClip');
    });
  }
});

}

那就把加载的动画资源存起来,用到相同的就取缓存,不用了 就从内存中销毁

每次执行完都销毁了 但是内存还是只增不减,很奇怪

创建帧动画:
private createAnimationClipOld(imageAsset: ImageAsset, plist: Asset) {
// let spriteAtlas = PlistParse.parse(imageAsset, plist);
this. spriteAtlas = new SpriteAtlas();
let texture = this._textureCache.get(imageAsset.uuid);
if(!texture){
texture = new Texture2D()
texture.image = imageAsset;
this._textureCache.set(imageAsset.uuid,texture);
}
const atlasPlist = plist["_file"];
const _frames = this.spriteAtlas.spriteFrames;
for (const key in atlasPlist.frames) {
let spriteFrame = PlistParse.getSpriteFrame(texture, atlasPlist, key);
_frames[key] = spriteFrame;
}
let frames = this.spriteAtlas.getSpriteFrames();

//创建动画剪辑
this.animationClip  = AnimationClip.createWithSpriteFrames(frames, frames.length);
this.animationClip.wrapMode = AnimationClip.WrapMode.Loop;

}

释放资源
this._textureCache.forEach((texure) => {
texure.destroy();
});
this._textureCache.clear();