2

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

例如消息的接收器类型“NSPortMessage”是前向声明

所以我尝试通过“Foundation/NSPortMessage.h”导入,之后它说:

找不到 Foundation/NSPortMessage.h 文件。

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

4

2 回答 2

2

NSPortMessage似乎不在 iOS 文档中,所以大概是一个私有 API。NSPortMessage当我尝试使用Xcode 时,Xcode 会为我完成代码完成,大概是因为前向声明。但是,如果我让 Xcode 向我展示它的定义,NSPortMessage则表示找不到该符号,这将确认它是一个私有 API。

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

我当然不会尝试在适用于 App Store 的应用程序中使用它。

于 2012-09-12T09:01:53.163 回答
0

由于 iOS 版本的分布式对象编程指南和某些 API 也已弃用,因此似乎不鼓励将所有与基于端口的输入源相关的东西用于 iOS 开发。但是使用 Core Foundation 功能设置基于端口的通道以在线程之间进行通信仍然是一个可用的选择。

于 2014-04-05T07:01:21.200 回答