我在 XCode 9,OSX 不是 iOS,Objective-C。
我有一个 XPC 服务可以与其他应用程序通信。XPC 服务对我来说是全新的。我已经阅读了我找到的文档和文章——我仍然需要一些帮助。
// NSXPC Connection stored as ivar
self.bridgeagent = [[NSXPCConnection alloc] initWithServiceName:@"com.myid.myapp.bridgeagent"];
self.bridgeagent.remoteObjectInterface = [NSXPCInterface interfaceWithProtocol:@protocol(bridgeagentProtocol)];
self.bridgeagent.exportedInterface = [NSXPCInterface interfaceWithProtocol:@protocol(bridgeagentProxyProtocol)];
self.bridgeagent.exportedObject = self;
[self.bridgeagent setInvalidationHandler:^{
NSLog(@"Bridgeagent invalidation handler!");
}];
[self.bridgeagent setInterruptionHandler:^{
NSLog(@"Bridgeagent interruption handler!");
}];
[self.bridgeagent resume];
服务是这样调用的:
// openFile method is listed in corresponding protocol
[[self.bridgeagent remoteObjectProxyWithErrorHandler:^(NSError * _Nonnull error) {
NSLog(@"bridgeagent.openFile errorHandler: %@",error);
}] openFile:parameters withReply:^(NSDictionary *returnParameters) { // do something with result }];
呼叫有效,服务完成其工作。但是 - 既然该服务有效,我想深入研究使其更加稳定(即使我现在没有遇到任何问题)。
有人可以向我解释
- 中断和失效之间的区别(当其中一种发生时不要明白)
- 如果有处理这两种情况的最佳实践
- 如何强制两种情况(用于调试)
谢谢你的帮助