C的東西,有點失落,它來自LUA。我已經編程了多年,但不知道如何存儲我的委託對象,並稍後再指向它。我能夠創建一個新的實例,但需要引用先前從iOS的Corona Enterprise插件創建的實例。希望有人能幫助過去這個小問題。如何將我的委託實例存儲在Obj-C中
所以我定義一個變量我CoronaIbeaconDelegate @interface之後,像這樣:
CoronaIBeaconDelegate *coronaIBeaconDelegate;
在我的電暈插件類代碼後來我創建CoronaIBeaconDelegate的情況下,像這樣:
int
PluginLibrary::scan(lua_State *L)
{
int listenerIndex = 1;
coronaIBeaconDelegate = [[CoronaIBeaconDelegate alloc] firstRegion];
if (CoronaLuaIsListener(L, listenerIndex, kEvent))
{
Self *library = ToLibrary(L);
CoronaLuaRef listener = CoronaLuaNewRef(L, listenerIndex);
library->Initialize(listener);
// Create event and add message to it
CoronaLuaNewEvent(L, kEvent);
lua_pushstring(L,"scan");
lua_setfield(L, -2, "phase");
lua_pushboolean(L,true);
lua_setfield(L, -2, "scanning");
lua_pushstring(L, "Scanning Started");
lua_setfield(L, -2, "message");
// Dispatch event to library's listener
CoronaLuaDispatchEvent(L, library->GetListener(), 0);
}
return 0;
}
這將工作正常,但我在將代表存儲在coronaIBeaconDelegate變量中時發出警告,聲明「實例方法未找到-firstRegion」,但這將按預期調用firstRegion類函數,並且我的IBeacon代碼開始掃描。
我想要做的是能打電話的CoronaIBeaconDelegate類稱爲stopRangingForBeacons另一個函數喜歡所以使用前一個實例:
int
PluginLibrary::stopscan(lua_State *L)
{
int listenerIndex = 1;
[coronaIBeaconDelegate stopRangingForBeacons];
if (CoronaLuaIsListener(L, listenerIndex, kEvent))
{
Self *library = ToLibrary(L);
CoronaLuaRef listener = CoronaLuaNewRef(L, listenerIndex);
library->Initialize(listener);
// Create event and add message to it
CoronaLuaNewEvent(L, kEvent);
lua_pushstring(L,"stopscan");
lua_setfield(L, -2, "phase");
lua_pushboolean(L,true);
lua_setfield(L, -2, "scanning");
lua_pushstring(L, "Scanning Stopped");
lua_setfield(L, -2, "message");
// Dispatch event to library's listener
CoronaLuaDispatchEvent(L, library->GetListener(), 0);
}
return 0;
}
請告訴我發生是一個空的錯誤。我試圖將以前的實例存儲在coronaIBeacon變量中,但它不起作用。我似乎無法完成這個簡單的任務。
請幫忙謝謝?