关于ByteArray的一个问题,求解

function MainScene:login(__uid, __token, __serverType)
    --[var byt:ByteArray = new ByteArray();
            byt.endian = Endian.LITTLE_ENDIAN;
            byt.writeUTFBytes(_uid);
            byt.position = 48;
            byt.writeUTFBytes(_toKen);
            
            var buf:ByteArray = new ByteArray();
            
            buf.endian=Endian.LITTLE_ENDIAN;
            
            buf.writeUnsignedInt(_serverType);
            buf.position=4
            buf.writeBytes(byt,0,byt.length);
            _tcp.Send(buf, 68);]]
            local  __byt = cc.utils.ByteArray.new(cc.utils.ByteArray.ENDIAN_LITTLE)
            __byt:writeStringUShort(__uid)
            __byt:setPos(48)
            __byt:writeStringUShort(__token)
            local  __buf = cc.utils.ByteArray.new(cc.utils.ByteArray.ENDIAN_LITTLE)
            __buf:writeUInt(__serverType)
            __buf:setPos(4)
            print(__byt, __byt:getLen())
            __buf:writeBytes(__byt, 0, __byt:getLen())
end

因为以前用AS写的,现在转成lua,转后发现报如下错误求帮助

table 49

LUA ERROR: :392: bad argument #1 to ‘sub’ (string expected, got nil)

stack traceback:
: in function ‘sub’
:392: in function ‘writeRawByte’
:348: in function ‘writeBytes’
:71: in function ‘login’
:43: in function <:40>
(tail call): ?
:59: in function <:38>
(tail call): ?
:155: in function ‘_onConnected’
:83: in function ‘__checkConnect’
:101: in function <:91>