title: How can I combine methods with different arguments?
body: <p>I have four main methods:</p>
  
  <pre><code>+ (NSArray *)findAll;
  + (NSArray *)findAllWithOrder:(NSArray *)order;
  + (NSArray *)findAllWithConditions:(NSDictionary *)conditions;
  + (NSArray *)findAllWithLimit:(NSRange)limit;
  </code></pre>
  
  <p>In addition, I want to combine these methods (so I can <code>find all</code> by both order and conditions, for example). Currently I'm doing (all possibilities even with arguments in a different order not shown here):</p>
  
  <pre><code>+ (NSArray *)findAll;
  + (NSArray *)findAllWithOrder:(NSArray *)order;
  + (NSArray *)findAllWithConditions:(NSDictionary *)conditions;
  + (NSArray *)findAllWithLimit:(NSRange)limit;
  + (NSArray *)findAllWithOrder:(NSArray *)order conditions:(NSDictionary *)conditions;
  + (NSArray *)findAllWithOrder:(NSArray *)order limit:(NSRange)limit;
  + (NSArray *)findAllWithConditions:(NSDictionary *)conditions limit:(NSRange)limit;
  + (NSArray *)findAllWithOrder:(NSArray *)order conditions:(NSDictionary *)conditions limit:(NSRange)limit;
  </code></pre>
  
  <p>But is there a simpler way than creating dozens of methods for this? That would be very nice. Thanks.</p>