I'm doing some stuff with USB, and the example code I'm using uses
IOServiceAddMatchingNotification() to add a pointer to a C callback to
get notified when things happen on the USB bus.
In C++, one typically uses the refcon parameter in these APIs to pass a
pointer to the C++ object responsible for handling the callback, and a
pointer to a static C++ member function that massages the call into a
method dispatch.
You will do the same in Cocoa, and in your callback function, use the
refcon as your object id and call a method of your object.
Just make sure that the object in question is not autoreleased,
otherwise you'll have some weird and difficult to debug issues.