RACAutoDisposer 0.2.0

RACAutoDisposer 0.2.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Heechul Ryu 维护。



你的 RAC 订阅在被重用时仍然被调用,尽管你希望它们消失,遇上了这个问题吗?比如 UITableViewCell?

通过添加几行代码解决问题。

只说当再次调用此代码时,你希望最后的订阅消失。

@RACAutoDispose(@"[key-to-be-unique-in-a-scope]", {
  [RACObserve(self, object)
     subscribeNext:^(id x) {
         // ...
     }];
})

需要将 RACAutoDisposerProtocol 实现到作用域对象中,包含 @RACAutoDispose 代码

@interface ScopeObjectIncludesRACAutoDisposeCode () <RACAutoDisposerProtocol>

否则,将会有警告和未发布的 RACDisposals,这是一个内存问题。

什么是作用域?

如果你的 @RACAutoDispose 代码在同一个对象中,那么它们就在同一个作用域中。所以在一个相同的作用域中,键是唯一的,以区分每个订阅。

它如何工作?

  • 当调用 @RACAutoDispose 时,RACAutoDisposer 通过键和作用域持有最后的 RAC 订阅。
  • RACAutoDisposer 会丢弃具有相同键的最后一个丢失,当相同的代码再次调用时,并再次保留新的。
  • RACAutoDisposer 在作用域对象被释放时丢弃丢失。

示例项目

打开 Example/RACAutoDisposer.xcworkspace 并运行它,然后在控制台查看结果。

用法

要运行示例项目,克隆仓库,并首先从 Example 目录执行 pod install

要求

ARC,ReactiveCocoa。

安装

作者

Ryu Heechul,[email protected]

许可证

RACAutoDisposer 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。