RACCommand Class Reference
| Inherits from | NSObject |
| Declared in | RACCommand.h RACCommand.m |
Tasks
-
executionSignalsproperty -
executingproperty -
enabledproperty -
errorsproperty -
allowsConcurrentExecutionproperty -
– initWithSignalBlock: -
– initWithEnabled:signalBlock: -
– execute:
Properties
allowsConcurrentExecution
Whether the command allows multiple executions to proceed concurrently.
@property (atomic, assign) BOOL allowsConcurrentExecutionDiscussion
The default value for this property is NO.
Declared In
RACCommand.henabled
A signal of whether this command is able to execute.
@property (nonatomic, strong, readonly) RACSignal *enabledDiscussion
This will send NO if:
- The command was created with an
enabledSignal, and NO is sent upon that signal, or allowsConcurrentExecutionis NO and the command has started executing.
Once the above conditions are no longer met, the signal will send YES.
This signal will send its current value upon subscription, and then all future values on the main thread.
Declared In
RACCommand.herrors
Forwards any errors that occur within signals returned by execute:.
@property (nonatomic, strong, readonly) RACSignal *errorsDiscussion
When an error occurs on a signal returned from execute:, this signal will
send the associated NSError value as a next event (since an error event
would terminate the stream).
After subscription, this signal will send all future errors on the main thread.
Declared In
RACCommand.hexecuting
A signal of whether this command is currently executing.
@property (nonatomic, strong, readonly) RACSignal *executingDiscussion
This will send YES whenever execute: is invoked and the created signal has
not yet terminated. Once all executions have terminated, executing will
send NO.
This signal will send its current value upon subscription, and then all future values on the main thread.
Declared In
RACCommand.hexecutionSignals
A signal of the signals returned by successful invocations of execute:
(i.e., while the receiver is enabled).
@property (nonatomic, strong, readonly) RACSignal *executionSignalsDiscussion
Errors will be automatically caught upon the inner signals, and sent upon
errors instead. If you want to receive inner errors, use -execute: or
[RACSignal materialize].
Only executions that begin after subscription will be sent upon this signal. All inner signals will arrive upon the main thread.
Declared In
RACCommand.hInstance Methods
execute:
If the receiver is enabled, this method will:
- (RACSignal *)execute:(id)inputDiscussion
- Invoke the
signalBlockgiven at the time of initialization. - Multicast the returned signal to a RACReplaySubject.
- Send the multicasted signal on
executionSignals. - Subscribe (connect) to the original signal on the main thread.
input - The input value to pass to the receiver’s signalBlock. This may be
nil.
Returns the multicasted signal, after subscription. If the receiver is not enabled, returns a signal that will send an error with code RACCommandErrorNotEnabled.
Declared In
RACCommand.hinitWithEnabled:signalBlock:
- (id)initWithEnabled:(RACSignal *)enabledSignal signalBlock:(RACSignal *( ^ ) ( id input ))signalBlockDiscussion
This is the designated initializer for this class.
enabledSignal - A signal of BOOLs which indicate whether the command should
be enabled. enabled will be based on the latest value sent
from this signal. Before any values are sent, enabled will
default to YES. This argument may be nil.
signalBlock - A block which will map each input value (passed to execute:)
to a signal of work. The returned signal will be multicasted
to a replay subject, sent on executionSignals, then
subscribed to synchronously. Neither the block nor the
returned signal may be nil.
Declared In
RACCommand.h