<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 22, 2016, at 3:11 PM, Kevin Lundberg &lt;<a href="mailto:kevin@klundberg.com" class="">kevin@klundberg.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">I personally use the existing behavior in some of my code, by providing the reference to the method directly to a method/function that takes a closure as a parameter. A modified excerpt from my code:</div><div class=""><br class=""></div><div class=""><font face="Courier New" class="">&nbsp; &nbsp; let observer =&nbsp;<span class="">NSNotificationCenter</span><span class="">.defaultCenter().addObserverForName(LoginSuccess, object:&nbsp;</span><span class="">nil</span><span class="">, queue:&nbsp;</span><span class="">nil</span><span class="">, usingBlock: weakify(self,&nbsp;</span><span class="">self</span><span class="">.</span><span class="">dynamicType</span><span class="">.userDidLogin))</span></font></div><div class=""><span class=""><br class=""></span></div><div class="">(Note: This usage normally would lead to a retain cycle, but I wrap the method reference in this weakify() function which handles weakly applying self to the returned method reference.)</div><div class=""><br class=""></div><div class="">Un-currying method references would make this pattern harder to apply, so if there was a way to resolve this behavior without removing the current flexibility that the curried behavior offers, I would prefer that. Un-currying mutating methods only would be one option, but that seems a bit ugly.&nbsp;</div><div class=""><br class=""></div><div class="">However, if there isn't a way to fix it without changing existing behavior, I'd prefer the un-curried form everywhere to removing static method access outright.</div></div></div></blockquote><br class=""></div><div>If I understand the intent of `weakify` correctly, I think this kind of use case is already pretty severely curtailed by our removing the tuple splat feature, since you can no longer make `weakify` generic across multiple method signatures. Like the tuple splat feature, an explicit variadic splatting feature ought to make this possible for flattened method signatures:</div><div><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div>func weakify&lt;Class: class, Args, Result&gt;(instance: Class, method: (Class, Args...) -&gt; Result) -&gt; (Args...) -&gt; Result {</div><div>&nbsp; return {[weak instance] args... in method(instance, args...) }</div><div>}</div></blockquote><br class=""><div class="">-Joe</div></body></html>