Вопрос:
У меня это в menu.lua
local db = require «databaseconnection» … local function onEndBtnRelease() local thisandthat = db.getLoggedIn() native.showAlert( «Corona SDK», thisandthat..» teststring», { «OK» } ) end …
и это в databaseconnection.lua
local function getLoggedIn() print(«Test») —[[… ]]— return «some data» end
Единственное, что я хочу, это то, что String («some data») из getLoggedIn(), но все, что я получаю, является ошибкой:
…coronamenu.lua: 51: попытка вызвать поле ‘getLoggedIn’ (значение nil)
Отпечаток никогда не достигается.
Я работаю над Corona SDK и Sublime, необходимые данные из isLoggedIn() поступают из sqlite-запроса. Как я могу достичь этой функции?
Лучший ответ:
Один прямой способ написать модуль – вернуть таблицу, которая включает в себя необходимые вам функции:
local M = {} function M.getLoggedIn() print(«Test») —… return «some data» end return M
Обратите внимание, что функция должна быть не local, или она будет закрытой.
См. PiL для других продвинутых методов.
Ответ №1
вы также можете сделать класс уплотнения
просто написав ниже строки вверху вашего класса (databaseconnection.lua)
module(…, package.seeall)
чем вызов вашей функции в main.lua, он вернет то же самое значение, которое вы хотите.
Ответ №2
Вы также можете получить свои данные таким образом.
потребовать ( “databaseconnection” ) в файле menu.lua и вызвать функцию входа в систему.
local abc = getLoggedIn()
print (abc)