RACEvent
RACEvent 是 ReactiveCocoa 框架中用来表示信号流所发送的事件信息的类,同三种信号量相对应,该类可以分为三种。
typedef NS_ENUM(NSUInteger, RACEventType) {
RACEventTypeCompleted,
RACEventTypeError,
RACEventTypeNext
};
该类提供了三个类方法,可以很方便的创建上面三种类型的事件。
+ (RACEvent<ValueType> *)completedEvent;
+ (RACEvent<ValueType> *)eventWithError:(nullable NSError *)error;
+ (RACEvent<ValueType> *)eventWithValue:(nullable ValueType)value;
completedEvent 方法会返回一个共享的实例对象,并且这三个方法都调用了同一个方法
initWithEventType:object:
。
提供了一个属性表示事件类型
@property (nonatomic, assign, readonly) RACEventType eventType;
提供了一个属性表示事件是否结束,即该事件类型是否是 RACEventTypeError 或 RACEventTypeCompleted 。
@property (nonatomic, getter = isFinished, assign, readonly) BOOL finished;
提供了一个属性表示同事件类型为 RACEventTypeError 的事件相关联的错误信息
@property (nonatomic, strong, readonly, nullable) NSError *error;
提供了一个属性表示同事件类型为 RACEventTypeNext 的事件相关联的值
@property (nonatomic, strong, readonly, nullable) ValueType value;
error 和 value 实际都是由内部属性 object 保存的。