精灵执行序列动作(最后一个动作是移除自己)结果报错

为什么ziDan不移除自己呢?大佬求指点,是不是我remove函数语法写错了
local sharedScheduler = self:getScheduler()
self.wuXianZiDan = sharedScheduler:scheduleScriptFunc(function ()
local x,y = (self.ziJi):getPosition()
self.ziDan = cc.Sprite:create(“bullet2.png”)
self.ziDan:setPosition(x,y+30)
table.insert(self.ziDanBiao,self.ziDan)
local action1 = cc.MoveTo:create(5,cc.p(x,y+1000))
local action2 = cc.CallFunc:create(function ()
for k,v in pairs (self.ziDanBiao) do
if v == self.ziDan then
table.remove(self.ziDanBiao,k)
end
end
self.ziDan:removeFromParent()//这一句没有执行,但是if判断语句执行了
end)
local sequence = cc.Sequence:create(action1,action2,NULL)
self.ziDan:runAction(sequence)
self:addChild(self.ziDan)
end,0.4,false)