2016-07-31 3 views
0

У меня, похоже, возникли проблемы с использованием Socket ScanAPI в многоцелевом приложении. Я использую примерный примерный пример кода на GitHub, а сканер сокетов и код работают безупречно, когда я представляю VC, используемый для сканирования в первый раз.Socket barcode scanner sdk сбой при перезагрузке ViewController в iOS

Инициализация как пример кода, за исключением инициализирую scanApiHelpher с ScanApiHelper(), а не общая версия:

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

Проблема возникает, когда я уволить VC, затем представить его снова, я получаю аварию в sktscanapilistenerthread на 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 

Запускается ли SDK на фоновый поток, когда вспомогательный объект инициализируется, и поэтому переинициализация это вызывает сбой? то есть должна ли инициализация вспомогательного объекта проходить в корневом VC?

ответ

0

Возможно, мне что-то не хватает в документах, но кажется, что для любого использования API-интерфейса сканера, который включает в себя отказ от VC, который использует API, требуется объект sharedhelper, поскольку невозможно инициализировать ScanApiHelper var более одного раза (он создает фоновый поток в init).

Смежные вопросы