2016-01-10 24 views
0

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變量中,但它不起作用。我似乎無法完成這個簡單的任務。

請幫忙謝謝?

回答

0

按照慣例我回答我自己的問題。我的問題是由於我初始化我的實例的方式。在我的情況下,這是正確的方法。

IBeaconDelegate = [[CoronaIBeaconDelegate alloc] init]; 
[IBeaconDelegate firstRegion];