NSPortMessage是否在iOS API中?

NSPortMessage是否在iOS API中?,ios,cocoa-touch,foundation,Ios,Cocoa Touch,Foundation,我正试图根据线程编程指南编写一个关于运行循环的演示。 当我实现NSPortDelegate的-(void)handlePortMessage:(NSPortMessage*)portMessage方法提示错误: 实例消息的接收器类型“NSPortMessage”是转发声明 因此,我尝试通过“Foundation/NSPortMessage.h”导入,之后会显示: 未找到Foundation/NSPortMessage.h文件 所以我想知道我们是否可以在iOS中使用NSPortMessage?NS

我正试图根据线程编程指南编写一个关于运行循环的演示。 当我实现NSPortDelegate的
-(void)handlePortMessage:(NSPortMessage*)portMessage方法提示错误:

实例消息的接收器类型“NSPortMessage”是转发声明

因此,我尝试通过“Foundation/NSPortMessage.h”导入,之后会显示:

未找到Foundation/NSPortMessage.h文件


所以我想知道我们是否可以在iOS中使用NSPortMessage?

NSPortMessage
似乎不在iOS文档中,因此可能是一个私有API。当我尝试使用Xcode时,Xcode会为我完成
NSPortMessage
,可能是因为转发声明。但是,如果我要求Xcode向我显示
NSPortMessage
的定义,它会说找不到符号,这将确认它是一个私有API

该类存在于我的iPhone 4s上的Objective-C运行时中,因此它在设备上。但是,
NSPortMessage
允许进程间通信,我认为这会违反iOS沙箱安全性。不过,它可能适用于线程间通信


我当然不会尝试在应用商店的应用程序中使用它。

由于iOS版的分布式对象编程指南和某些API也被弃用,似乎不鼓励将所有与基于端口的输入源相关的内容用于iOS开发。但是,使用核心基础函数建立基于端口的通道间通信仍然是一种可行的选择。p> 你的意思是我们不能在iOS中为线程的runloop配置基于端口的输入源吗?我不知道!我没有尝试在iOS或OS X上使用
NSPortMessage
。我的答案是基于对iOS文档、iOS标题和实际加载到我手机上Objective-C运行时的类的快速搜索。该类就在那里,如果您从OS X SDK获取
NSPortMessage
头声明并将其导入到您的iOS应用程序中,它可能会工作。然而,很明显苹果已经从iOS SDK中删除了
NSPortMessage
,因此它将被视为私有API。使用私有API会导致应用商店拒绝应用。我明白了。。。为什么关于NSPortMessage的线程编程网格在iOS库中…很可能是指南中的错误,也可能是删除了NSPortMessage头的错误。你可以提交一个雷达,看看会发生什么。要么是指南错了,要么是标题错了,所以苹果应该真的修复它。