<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I remain unconvinced that any method that starts with "set" without a matching getter could be turned into a "good property setter". I'm not sure who you're trying to convince with this metric.<div class=""><br class=""></div><div class="">Maybe you should start by telling if you think that there can be a "bad setter". For instance, can I replace a `sendResponse(String)` method that sends a string over the network with a `response` set-only property?</div><div class=""><br class=""></div><div class="">IMO, a good setter behaves like it's setting a variable, because this is exactly what the assignment operator suggests. That is:</div><div class=""><div class=""><ul class=""><li class="">you should be able to replace a sequence of writes to a setter by a single write with the last value and still have essentially the same end result;</li><li class="">you should be able to reorder setter operations and still essentially get the same end result.</li></ul><div class="">"Essentially the same end result" means that it's okay if the logging output is different or if you wasted cycles in the process.</div></div><div class=""><div class="">
<br class="Apple-interchange-newline"><span style="color: rgb(0, 0, 0); font-family: 'Lucida Grande'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline !important; float: none;" class="">Félix</span>
</div>
<br class=""><div><blockquote type="cite" class=""><div class="">Le 4 févr. 2016 à 10:25:14, Jessy Catterwaul &lt;<a href="mailto:mr.jessy@gmail.com" class="">mr.jessy@gmail.com</a>&gt; a écrit :</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">My original post from yesterday, which describes the way that I am using set-only properties in Swift, still has not gotten through; attempting again:<div class=""><br class=""></div><div class=""><div class="">I use set-only properties very, very often. I am interested to know&nbsp;how ubiquitous functions that begin with “set” are, in  frameworks. I’m currently under the impression that people usually don’t recognize that they could be using a setter, instead of a function, due to those frameworks, coming from a respected source, causing them to believe that the practice is reasonable.</div><div class=""><br class=""></div><div class=""><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(144, 45, 208);">/// Use this as the getter for set-only properties,&nbsp;</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(144, 45, 208);">/// until Swift has real set-only properties.</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(144, 45, 208);">///-&nbsp;<span class="" style="color: rgb(0, 144, 81);">Important</span>: Causes a fatal error, logging the name of the property.</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo; color: rgb(144, 45, 208);">///-&nbsp;<span class="" style="color: rgb(0, 144, 81);">Parameter</span>&nbsp;propertyName: Never use this; only use the default.</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;"><span class="" style="color: rgb(187, 44, 162);">@noreturn</span>&nbsp;<span class="" style="color: rgb(187, 44, 162);">public</span>&nbsp;<span class="" style="color: rgb(187, 44, 162);">func</span>&nbsp;setOnlyPropertyGetterError(propertyName:&nbsp;<span class="" style="color: rgb(112, 61, 170);">String</span>&nbsp;=&nbsp;<span class="" style="color: rgb(187, 44, 162);">__FUNCTION__</span>) {</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;">&nbsp;&nbsp;&nbsp;<span class="" style="color: rgb(61, 29, 129);">fatalError</span>(<span class="" style="color: rgb(209, 47, 27);">"</span>\<span class="" style="color: rgb(209, 47, 27);">(</span>propertyName<span class="" style="color: rgb(209, 47, 27);">) is set-only"</span>)</div><div class="" style="margin: 0px; font-size: 14px; line-height: normal; font-family: Menlo;">}</div></div></div></div></div></blockquote></div><br class=""></div></div></body></html>