类继承问题

使用了 TestLua Demo中资源中的extern.lua 的class 方法做类的继承
在脚本CardListLayer.lua 中 自定义自己的类:

require("extern")-- 创建层
local CardListLayer = class("CardListLayer")
CardListLayer.__index = CardListLayer
- 层 CardBagLayer 继承 
CCLayerfunction CardListLayer.extend(target)
    local t = tolua.getpeer(target)   
    if not t then       
          t = {}       
          tolua.setpeer(target, t)    
    end    
    setmetatable(t, CardListLayer)    
    return target
end
-- overwritefunction CardListLayer:init()    
      -- do samething my init()    
      return true
end

-- create object
function CardListLayer.create()    
    local layer = CardListLayer.extend(CCLayer:create())  
    if nil ~= layer then       
       layer:init()    
    end   
    return layer    
end

return CardListLayer

在另一个脚本中调用时

       
 local pLayer = OpenLua("CCardBagLayer") --         
 local cardListLayer = pLayer:create()       
  print(type(cardListLayer))        
 this.layer.addChild(cardListLayer)    
 

其中OpenLua(FileName)

function OpenLua(FileName)    return require(CFileName)end

打印出来的 local cardListLayer = pLayer:create() 的类型为 userdata
但在this.layer.addChild(cardListLayer) 报 :error in function ‘addChild’.
argument #2 is ‘’; ‘CCNode’ expected

我的继承方法错了吗 ? 还是有哪地方方法不对 ?对比了TestLua中的 ExtensionTest.lua的
TableViewTestLayer 中的Demo 好像区别只在生成对象在脚本内(TestLua)及另一脚本(我的) 是我返回值有问题吗?
求分析.谢谢

排版不是很好 看贴的多多担待点

但在this.layer.addChild(cardListLayer) 报 :error in function ‘addChild’.
argument #2 is ‘’; ‘CCNode’ expected

addChild的第二个参数应该是CCNode,可是你没传参
这句你应该看得懂吧

本来addChild的第一个参数才是CCNode
但是你得是
layer:addChild,而不是layer:addChild……:代替。是Lua的语法糖……认真学一下Lua和多看一下示例吧……

TKS 我粗心