title: PerformSelector may cause a leak - Better solution
body: <p>I have a custom BackBarButton where I have a property to store a selector which can change in some cases. So I can't use delegation really smoothly.</p>
  
  <p><img src="https://i.stack.imgur.com/qvkAt.png" alt="Warning description"></p>
  
  <p>What can I do to get rid of this warning without changing the 'workflow' to delegation? The property is defined by using this:</p>
  
  <pre><code>@property (nonatomic, strong) id&lt;SPUniversalBackBarButtonItemDelegate&gt; delegate;
  @property (nonatomic, assign) SEL delegationSelector;
  </code></pre>
  
  <p>I also tried to use this code, but it says 'No known instance method for selector...' and 'Implicit conversation of an Objective-C pointer to IMP'...</p>
  
  <pre><code>IMP imp = [[self delegate] methodForSelector:[self delegationSelector]];
  void (*func)(id, SEL) = (void *)imp;
  func([self delegate], [self delegationSelector]);
  </code></pre>