XPC inherits its on-demand architecture from launchd. I talk about this in some detail in XPC and App-to-App Communication.
In that architecture, XPC services (and launchd job that vend named XPC endpoints) are expected to:
Ideally an XPC client shouldn’t care about this. So, XPC connections aren’t like TCP connections. You can’t ask whether one is “connected”. Rather, all you can do is send a message and see if that’s handled.
Why does this matter to you?
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"
[1] Historically this used to be based on an idle timer. These days the system use memory pressure to guide this, that is, if memory pressure is high it starts looking for idle processes to terminate.