我在NSObject中发现了一个奇怪的关键字.H

- (oneway void)release;

我在网上搜索,了解到它与异步消息传递有关,这与Erlang的消息传递类似.

这似乎可以让很多有趣的事情发生.这个关键词有哪些好的使用 case ?

推荐答案

oneway与分布式对象API一起使用,该API允许在不同线程或应用程序之间使用objective-c对象.它告诉系统在方法返回之前不应该阻止调用线程.如果没有它,调用方将阻塞,即使该方法的返回类型为void.显然,除了void之外,它从不与其他任何东西一起使用,因为这样做意味着该方法返回了一些东西,但调用方没有得到它.

有关分布式对象的更多信息,请参见Cocoa Conceptual DistrObjects.

Objective-c相关问答推荐

使用 NSMutableString 附加到文件的末尾

当我们只能使用 NSObject 时,为什么还要使用 id?

如何检测 iPhone 5c 的 colored颜色 ?

在 iOS 中实现闪屏

NSTimeZone:localTimeZone 和 systemTimeZone 有什么区别?

iOS performSelectorOnMainThread 有多个参数

NSLocalizedString 格式

如何正确获取文件大小并将其转换为 Cocoa 中的 MB、GB?

`-fembed-bitcode` 和 BITCODE_GENERATION_MODE 有什么区别?

使用 NSMutableArray 的二维数组

iOS 7 状态栏与 NavigationBar 冲突

从 UIPageViewController 中移除视图控制器

发出许多网络请求的 iOS 应用程序的最佳架构?

iOS 5:对 UIAppearance 感到好奇

如何删除应用程序可访问的所有 keys 串项目?

Xcode 在您的 keys 串中找不到此配置文件的有效私有证书/有效密钥对

UICollectionView 仅在用户双击时调用 didSelectItemAtIndexPath,当用户单击时不会调用

每个 ivar 都必须是一个属性吗?

zoom UIView 及其所有子项

如何配置我的应用程序 - 菜单项被禁用?