Errors are handled in similar way as messages - through block handler. Original xpc_object_t object is passed through, so user can check what kind of error it is (i.e. XPC_ERROR_CONNECTION_INTERRUPTED etc). Second parameter is user friendly description retrieved from the error object via xpc_dictionary_get_string() function and lastly the connection itself.
…ed them as they are not passing automated tests. Code falls back to regular data.
…ton which fires a callback whenever a new XPCConnection is created. So there's one object which represents the entire service, and zero-to-many objects representing individual connections.