0

I'm trying to refresh a fetched array of objects using ReactiveCocoa, and I'd like to filter out results that have been deleted. I can't quite seem to get things working right — I expect that the filter would be passed each NSManagedObject in the trackSequence, but instead I see a _PFBatchFaultingArray object.

Can anyone shed any light on what I'm doing wrong? Thanks!

RACSequence *trackSequence = [documentContextUpdated map:^NSArray *(RACTuple *tuple) {
    return [DWFAbstractTrack MR_findAllSortedBy:DWFAbstractTrackAttributes.order ascending:YES inContext:tuple.second];
}].sequence;

RAC(self, tracks) = [trackSequence filter:^BOOL(NSManagedObject *managedObject) {
    return (NO == [managedObject isDeleted]);
}].signal;
Tony Arnold
  • 2,738
  • 1
  • 23
  • 34

1 Answers1

1

Looks like trackSequence is a RACSequence of NSArrays, not NSManagedObjects. Perhaps you want the -filter: in the -map:?

RAC(self, tracks) = [documentContextUpdated map:^NSArray *(RACTuple *tuple) {
    NSArray *tracks = [DWFAbstractTrack MR_findAllSortedBy:DWFAbstractTrackAttributes.order ascending:YES inContext:tuple.second];
    return [tracks.rac_sequence filter:^BOOL(NSManagedObject *managedObject) {
        return (NO == [managedObject isDeleted]);
    }].array;
}];
Dave Lee
  • 6,299
  • 1
  • 36
  • 36
  • Perfect, that was it. For some reason, I didn't even think to return things this way. You're a brain surgeon :) – Tony Arnold Oct 09 '13 at 00:27