关于lua中使用retain()的问题

我在lua中对精灵进行了retain()操作,如果在C++中我可以在Layer的析构函数中用release()释放这些精灵,可是lua里没有析构函数,如果我想让这些精灵随着Layer一起释放,我该如何做?

self:registerScriptHandler(register(self, self.onNodeEvent));


场景进入时调用函数
–]]
function BattleLayer:onEnter()
– CCSpriteFrameCache:sharedSpriteFrameCache():removeUnusedSpriteFrames();
CCTextureCache:sharedTextureCache():removeUnusedTextures();

return true;

end


场景释放时调用函数
–]]
function BattleLayer:onCleanup()
BattleUIManager:destroyInstance();
– ShowCard:destroyInstance();

GUIReader:purge();
CCSpriteFrameCache:sharedSpriteFrameCache():removeUnusedSpriteFrames();

return true;

end


场景进入退出函数
–]]
function BattleLayer:onNodeEvent(event)
if (event == “enter”) then
return self:onEnter();
elseif (event == “cleanup”) then
return self:onCleanup();
end

return false;

end

local function onNodeEvent(event)
    if "exit" == event then
        self.sprite:release()
    end
end
self:registerScriptHandler(onNodeEvent)

谢谢!!!