Page tree
Skip to end of metadata
Go to start of metadata

I'm having difficulty managing connection with the UniMag reader in my application integrated with multiple views or else retaining consistent functionality over a period of time.  How can I fix this?

The UniMag SDK 7.20 sample source code demonstrates a managed auto-connect while leaving from and returning to the main view.  Implementing a Singleton instance of the UniMag class across a multiple view project will enable the reader to be accessed without the established method.

In the main header class of the application, add a static method called sharedController (for example, I am using the fictional class name MainApp):




+(uniMag*) sharedController;


Then in the main method class of the application, add the code for it, which is a static variable and the sharedController definition:




static volatile uniMag *singletonUnimag = nil;

 +(uniMag*) sharedController{

    //Accesses a singleton instance of device class.

    static uniMag *SharedInstance = nil;

    static dispatch_once_t onceToken;

    dispatch_once(&onceToken, ^{

        SharedInstance = [uniMag new];


      singletonUnimag = SharedInstance;

    return SharedInstance;



Instead of  initializing the device as:

unimag* myDevice = [unimag new];    ( or [[unimag alloc] init] )

you use

unimag* myDevice = [MainApp sharedController];

With a singleton, and without any separate activation effort, even on the first time, functions such as ([MainApp sharedController] ReadCardSwipe) may be used.