I'm currently working with an API (Insiteo) that requires me to use an `id<ISPInitListener>`. It tells me to use it in the initialisation function:

```
id<ISPCancelable> initTask = [[ISInitProvider instance] startAPIWithServerType:ISEServerTypeProd andSiteId:SITE_ID andLanguage:LANGUAGE andInitListener:aListener];

```

Where 'aListener' is the `id<ISPInitListener>`. I can see that the `ISPInitListener` is an `NSObject` but don't actually know the best way to initialise / use it in this function? Can anyone explain how these sort of objects work? 

I currently have `ISPInitListener` added here `@interface LONetworkLocationManager () <UITextViewDelegate, UIAlertViewDelegate, ISPInitListener>` but the delegate functions related to the ISP never get called.

Any help is much appreciated.