<div dir="ltr">It might be worth being more specific with your comparison between the &quot;lock and key&quot; access control I described and the other techniques described in this thread. Given that the designers of Swift were familiar with protected access level from other languages and deliberately chose to exclude it, it seems likely that you&#39;ll need to give some detailed pros and cons to get a protected access level accepted I think.<div><br></div><div>I don&#39;t personally have an opinion on whether protected is a compelling addition to the Swift language. It&#39;s in some of the languages that I use and not others. I use it extensively where available, but it&#39;s not a compelling enough feature on its own to make me choose one language over another. I just wanted to make sure that people were aware of some other techniques available for implementation hiding that are available in the language today. (There are many more than just the one I presented if you&#39;re willing to take a small runtime cost).</div><div><br></div><div>-- Callionica</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, May 29, 2016 at 10:59 PM, Rod Brown <span dir="ltr">&lt;<a href="mailto:rodney.brown6@icloud.com" target="_blank">rodney.brown6@icloud.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="auto"><div>I have to agree with Charlie Monroe that while this is doable, it&#39;s clear this is a workaround to a problem, not a viable long term language solution.</div><div><br>- Rod</div><div><br><div><br><br>Sent from my iPhone</div><div><div class="h5">On 30 May 2016, at 2:49 PM, Callionica (Swift) &lt;<a href="mailto:swift-callionica@callionica.com" target="_blank">swift-callionica@callionica.com</a>&gt; wrote:<br><br></div></div></div><div><div class="h5"><blockquote type="cite"><div><div dir="ltr">I&#39;ve written up how to provide protected access control for Swift code today here:<div><br></div><div><a href="http://www.callionica.com/developer/#swift-protected" target="_blank">http://www.callionica.com/developer/#swift-protected</a></div><div><br><div>No compiler changes necessary for this technique and it distinguishes between methods that can only be overridden and methods that can be both called and overridden.</div></div>​</div>
</div></blockquote></div></div></div></blockquote></div><br></div>