title: NSPredicate: unrecognized selector sent to instance when filtering array of NSDateComponents using filteredArrayUsingPredicate
body: <p>I have some code in which I'm getting an array of dates from now to one year </p>
  
  <pre><code>        NSCalendar* calendar = [NSCalendar currentCalendar];
          NSMutableArray *dateComponentsInRange = [NSMutableArray new];
          NSDate *curDate = [dates objectAtIndex:0];
  
          while ([curDate timeIntervalSince1970] &lt;= [[dates lastObject] timeIntervalSince1970])
          {
              NSDateComponents *components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:curDate];
              [dateComponentsInRange addObject:components];
              curDate = [curDate dateWithNextDay];
          }
  </code></pre>
  
  <p>I need to filter that array(<code>dateComponentsInRange</code>) with another array of date components comparing by day, month, and year.</p>
  
  <p>So far I tried this</p>
  
  <pre><code>        NSDateComponents *components = nil;
          NSMutableArray *predicates = [NSMutableArray array];;
          for (NSDate *currentdate in dates)
          {
              components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentdate];
              NSString *preficateFormat = [NSString stringWithFormat:@"(SELF.day  != %d AND SELF.month != %d AND SELF.year != %d)",[components day],[components month], [components year]];
              [predicates addObject:preficateFormat];
          }
          NSPredicate *predicate = [NSCompoundPredicate orPredicateWithSubpredicates:predicates];
          NSArray *filteredArr = [dateComponentsInRange filteredArrayUsingPredicate:predicate];
  </code></pre>
  
  <p>But I'm getting the following error</p>
  
  <pre><code> [__NSCFString evaluateWithObject:substitutionVariables:]: unrecognized selector sent to instance
  </code></pre>