码迷,mamicode.com
首页 > 其他好文 > 详细

lua 元表,监控变量赋值及访问,并自动保存

时间:2016-08-20 19:13:28      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

g_local_data = {}

local local_data_real = {}

local mt = {
     __index = function (t, k)
--         print("access to element " .. tostring(k))
         return local_data_real[k]
     end,
  
     __newindex = function (t, k, v)
  --       print("update of element " .. tostring(k))
         local_data_real[k] = v
         saveLocalData()
     end
 }

setmetatable(g_local_data, mt)


cjson = require("cjson")

local filename = UserData.account .. ".data"

filename = string.gsub(filename , ":" , "_")
filename = CCFileUtils:sharedFileUtils():getWritablePath() .. filename

function saveLocalData()
    local fout = io.open(filename , "w")
    if not fout then
        print("write flie err!")
        return 
    end

    local data = cjson.encode(local_data_real)
    
    fout:write(data)

    fout:close()
end

function readLocalData()
    local fin = io.open(filename , "r")
    if not fin then
        return 
    end

    local data = fin:read("*a")
    local_data_real = cjson.decode(data)

    fin:close()
end

--读入数据
readLocalData()

  

lua 元表,监控变量赋值及访问,并自动保存

标签:

原文地址:http://www.cnblogs.com/JhonKing/p/5790981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!