2016-07-31 16 views
0

Ich habe Probleme mit dem Socket ScanAPI in einer Mehrzweck-App. Ich benutze den schnellen Code-Code für die einfache Eingabe auf GitHub, und der Socket-Scanner und der Code funktionieren fehlerfrei, wenn ich die zum ersten Mal zum Scannen verwendete VC präsentiere.Socket-Barcodescanner sdk beim erneuten Laden von ViewController in iOS

Initialisierung ist wie der Beispiel-Code, außer ich scanApiHelpher mit ScanApiHelper initialisieren() und nicht der freigegebenen Version:

var scanApiHelper = ScanApiHelper() 
scanApiHelperConsumer=NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("onScanApiHelperConsumer"), userInfo: nil, repeats: true) 
     scanApiHelper.pushDelegate(self) 
     scanApiHelper.open() 

Das Problem kommt, wenn ich die VC entlassen, es dann wieder präsentieren, bekomme ich einen Absturz in sktscanapilistenerthread bei 0x1005705c8:

0x1005705b4 <+1332>: bl  0x10058ab88    ; CSktScanAPI::NotifyError at CSktScanAPI.cpp:4639 
    0x1005705b8 <+1336>: adrp x8, 515 
    0x1005705bc <+1340>: ldr x1, [x8, #3296] 
    0x1005705c0 <+1344>: ldr x0, [sp, #8] 
    0x1005705c4 <+1348>: bl  0x10062b338    ; symbol stub for: objc_msgSend 
    0x1005705c8 <+1352>: add x0, sp, #48    ; =48 
    0x1005705cc <+1356>: bl  0x100563308    ; CSktList::~CSktList at SktList.cpp:29 
    0x1005705d0 <+1360>: add x0, sp, #312    ; =312 
    0x1005705d4 <+1364>: bl  0x10057fa68    ; SktAccessoryEnumerator::~SktAccessoryEnumerator at SktAccessoryEnumerator.mm:45 

Springt SDK einen Hintergrund-Thread, wenn das Hilfsobjekt nach oben initialisiert wird, und so neu initialisiert dies einen Absturz verursacht? d.h. muss die Initialisierung des Hilfsobjekts in der Wurzel-VC stattfinden?

Antwort

0

Vielleicht fehlt mir etwas in der Dokumentation, aber es scheint, dass für jede Verwendung der Scanner-API, die ein VC ablehnt, die die API verwendet, das sharedhelper-Objekt erforderlich ist, da es unmöglich ist, einen ScanApiHelper var mehr als einmal zu initialisieren (Es erzeugt einen Hintergrund-Thread auf init).

Verwandte Themen