XPCKit 0.0.1

XPCKit 0.0.1

测试已测试
语言语言 Obj-CObjective C
许可证 定制
发布最后发布2014年12月

未认领 维护。



XPCKit 0.0.1

  • Steve Streza

XPCKit 是一个 Cocoa 库,它可以封装 XPC C API 以便于对象模型的使用。它仅作为 C 库的对象封装,并不尝试在上面添加额外的语义。它包含运行“客户端”(创建到服务的连接)和“服务”(接收连接)的代码,尽管您可以在不同的客户端和服务之间混合使用原始的 C 或 Objective-C 代码。

特性

  • 简化了与 XPC 进程交互的 Objective-C API
  • 自动装箱和拆箱从 xpc_object_t 类型到
    • NSArray
    • NSDictionary
    • NSData
    • NSString
    • NSDate
    • NSNumber (对于 bool, UInt64, Int64 和 double 类型)
    • NSFileHandle
    • UUIDs (通过自定义 XPCUUID 类)
  • 基于块回调
  • 可以从多个线程安全使用

愿望列表

  • 对于 NSData 的自动装箱和拆箱
    • 支持共享内存(存在一些代码,但不可靠,会导致崩溃,不能返回一致的数据等。)
    • IOSurfaceRef
    • XPCConnection
  • 针对 iOS/Snow Leopard 的兼容模式
    • 客户端和服务代码都位于应用内
    • 开发者会将服务名称与其类别的映射添加到应用的 Info.plist 中
    • 对象将通过 XPCConnection 传递到同一进程内的 XPCService
    • 不会提供 xpc_* 类型

作者

示例代码

使用 这个示例数据,转换为 NSDictionary,您可以看到

  • 客户端如何发送这条命令,并且
  • 服务如何接收这条命令,处理后发送响应

安装

您可以在客户端、服务或两者中使用 XPCKit,只需包含代码即可。您可以通过以下三种方式之一包含 XPCKit:

  1. 自行包含源文件(XPCKit 中的所有内容)
  2. 将 XPCKit 框架作为依赖
  3. 将XPCKit的静态库作为依赖项(注意:您需要添加链接器标志 -all_load-ObjC 以正确运行此功能)

设置客户端

  1. 在您的应用程序中,添加XPCKit源文件、库或框架
  2. 使用您的服务名称设置XPCConnection对象
  3. 向其发送消息

设置服务

  1. 如果您尚未创建,请创建一个新的“XPC服务”目标(位于Mac OS X > 框架 & 库中)
  2. 添加XPCKit源文件、库或框架
  3. 链接到Foundation框架
  4. 将“main.c”重命名为“main.m”
  5. 在主函数中,调用+ [XPCService runServiceWithConnectionHandler:] 以开始监听传入的连接。
  6. 在连接处理程序中,对XPCConnection设置事件处理程序以接收消息。

许可

版权所有 2011 XPCKit

根据Apache License,版本2.0(“许可证”)许可;除非根据适用法律或书面同意,否则不得使用此文件,除非遵守许可证。您可以在以下位置获得许可证副本:

http://www.apache.org/licenses/LICENSE-2.0

除非适用法律要求或书面同意,否则在许可证下分发的软件按“现状”基础分发,不提供任何形式,明示或暗示的保证。请参阅许可证了解许可证下的权限和限制的具体语言。