关于多进程之间的通信,之前已经写过一篇文章介绍过NSConnection的用法(用NSConnection实现不同进程间的通信),利用NSConnection,可以直接获取到一个远程的对象,然后调用该对象的方法实现进程间的通信,这样的通信是一种直接的连接,优点在于你可以更自由的调用方法,代码直观,调用方便,但缺点是连接过于紧密,耦合性很强。
OSX10.7以后,cocoa新增加了一种新的技术,就是XPC,它的实现不再通过对象间的直接连接,而是通过block实现一种服务端对客户端的connection,这两者之间的通信都是通过使用xpc_connection发送消息实现。XPC的出现是为了将程序分成不同的几个子程序,从而实现权限分隔,让你的程序更加安全。
XPC在10.8以后,直接在Foundation.framework中添加了NSXPCConnection相关的类,使用更为方便,但在10.7的系统上面,我们就只能使用C的接口来实现(引入头
服务端的代码:
客户端的代码:
代码下载:XPCTest