<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=""><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">Hello! Hope you are all OK!&nbsp;</font></span></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">Using and converting To Swift 3.0 with many&nbsp;</font></span><font color="#0433ff" class=""><span style="font-size: 14px;" class="">advantages</span></font></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">and very little problems.</font></span><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">OK, thanks to all !</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">also for the reasonably smart converter. Yes, yes, yes, I’m<br class="">still missing the classical for ;; loop (don’t wake me up&nbsp;<br class="">again plse :o) &nbsp;but overall it is quite good!</font></span></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">I also value the -finally correct- meaning of the scope qualifier&nbsp;“private” , thanks,&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">which is as it should be (imho) inner scope restricting.&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class=""><br class=""></font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">As for&nbsp;“fileprivate”: as yet, I haven’t found a case</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">where I should use&nbsp;“fileprivate” also because to me, the contents of</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">a file should in principle not have anything to do with the entities</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">contained in it, as a file should be just an data carrier. Therefore,&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">it should have no effect to wether or not concatenate source.swift files</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">into one big file for example, although I would not recommend this.</font></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">As far as I can see without binoculars, the&nbsp;“fileprivate” acces modifier</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">could be dropped, were it not for source&nbsp;compatibility&nbsp;reasons...&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">&nbsp;&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">Unless I am missing something:&nbsp;</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">Still. something is not quite right yet, I think.</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">Just like in a Swift function, I don’t want the inner elements</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">of a class (or struct ?) to be visible in outer scope!</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">This is the default case in most OOP languages.&nbsp;</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">I fail to understand&nbsp;</font></span><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">why this is not so in Swift, please enlighten me.&nbsp;</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">As it is now, and as far as I know, I have to explicitly</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">declare *all* entities inside a class that should not be accessible</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-variant-ligatures: no-common-ligatures; font-size: 14px;" class=""><font color="#0433ff" class="">outside the class as private, like in this real-world example: &nbsp;</font></span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><br class=""></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">class</span><span style="font-variant-ligatures: no-common-ligatures" class=""> TG3DGauge: </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">SCNNode</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">{</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> needles = [</span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures" class="">]()</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> fmtStr = </span><span style="font-variant-ligatures: no-common-ligatures; color: #d12f1b" class="">“"&nbsp;</span><span style="color: rgb(0, 132, 0);" class="">// private should be the default imho.</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class="">&nbsp; &nbsp;&nbsp;</p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> value: </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">CGFloat</span><span style="font-variant-ligatures: no-common-ligatures" class=""> = </span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; {</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">didSet</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp;&nbsp;</span>// trigger value change, rotate needles etc.</div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; {</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #31595d" class="">valueChange</span><span style="font-variant-ligatures: no-common-ligatures" class="">()</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; }</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> nodeUnitText = </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures" class="">()</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> nodeValueText = </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures" class="">()</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> valRange: </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">ClosedRange</span><span style="font-variant-ligatures: no-common-ligatures" class="">&lt;</span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">CGFloat</span><span style="font-variant-ligatures: no-common-ligatures" class="">&gt; = (</span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">0</span><span style="font-variant-ligatures: no-common-ligatures" class="">...</span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">100.0</span><span style="font-variant-ligatures: no-common-ligatures" class="">)</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> rangeNeedlesActive: </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">Bool</span><span style="font-variant-ligatures: no-common-ligatures" class=""> = </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">true</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; {</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">didSet</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; {</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures" class="">needles</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">[</span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">2</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">].</span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">isHidden</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> = </span><span style="font-variant-ligatures: no-common-ligatures; color: #3e1e81" class="">!</span><span style="font-variant-ligatures: no-common-ligatures" class="">rangeNeedlesActive</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; color: rgb(79, 129, 135);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures" class="">needles</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">[</span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">3</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class="">].</span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">isHidden</span><span style="font-variant-ligatures: no-common-ligatures; color: #000000" class=""> = </span><span style="font-variant-ligatures: no-common-ligatures; color: #3e1e81" class="">!</span><span style="font-variant-ligatures: no-common-ligatures" class="">rangeNeedlesActive</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; &nbsp; &nbsp; }</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; }</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp; &nbsp; </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">private</span><span style="font-variant-ligatures: no-common-ligatures" class=""> </span><span style="font-variant-ligatures: no-common-ligatures; color: #ba2da2" class="">var</span><span style="font-variant-ligatures: no-common-ligatures" class=""> valScaleFactor: </span><span style="font-variant-ligatures: no-common-ligatures; color: #703daa" class="">CGFloat</span><span style="font-variant-ligatures: no-common-ligatures" class=""> = </span><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class="">1</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class=""><br class=""></span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures; color: #272ad8" class=""><span class="Apple-tab-span" style="white-space:pre">        </span></span><span style="color: rgb(0, 132, 0);" class="">// etc. more stuff</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><font color="#272ad8" class=""><span class="Apple-tab-span" style="white-space:pre">        </span>.</font></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><font color="#272ad8" class="">&nbsp; &nbsp; &nbsp; &nbsp; .</font></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><font color="#272ad8" class="">}&nbsp;</font><span style="color: rgb(0, 132, 0);" class="">// end class TG3DGauge</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="color: rgb(0, 132, 0);" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">It should (imho) be the other way around:&nbsp;</font><span style="color: rgb(4, 51, 255);" class="">that every member of&nbsp;</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><span style="color: rgb(4, 51, 255);" class="">a class is private by default - that is invisible&nbsp;</span><span style="color: rgb(4, 51, 255);" class="">outside the scope&nbsp;</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><span style="color: rgb(4, 51, 255);" class="">were it is declared in.</span><span style="color: rgb(4, 51, 255);" class="">&nbsp;This was (and still is) the case with Objective C,</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><span style="color: rgb(4, 51, 255);" class="">where&nbsp;</span><span style="color: rgb(4, 51, 255);" class="">you need to explicitly</span><span style="color: rgb(4, 51, 255);" class="">&nbsp;declaring them in&nbsp;</span><span style="color: rgb(4, 51, 255);" class="">&nbsp;the &nbsp;sourcefile.h file</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><span style="color: rgb(4, 51, 255);" class="">to make them </span><span style="color: rgb(4, 51, 255);" class="">visible and accessible in the outer scope</span><span style="color: rgb(4, 51, 255);" class="">&nbsp;</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">Everything else, as existing in the sourcefile.m remains hidden, not visible</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">in the outer scope.</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(4, 51, 255); font-size: 14px;" class=""><br class=""></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">As a solution/suggestion and also to prevent the gruesome</span></div><div style="margin: 0px; line-height: normal;" class=""><span style="color: rgb(4, 51, 255); font-size: 14px;" class="">horror (did i already wrote something about that? &nbsp;:o) of source breaking.</span></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" style="font-size: 14px;" class="">I could think of the&nbsp;“closedscope” (or some other word)&nbsp;</font></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">access modifier, which states t</font><span style="color: rgb(4, 51, 255);" class="">hat all things declared inside a class,&nbsp;</span></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><span style="color: rgb(4, 51, 255);" class="">are private within the class&nbsp;</span><span style="color: rgb(4, 51, 255);" class="">and thus invisible in the outer scope, unless</span></span></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">preceeded with an overriding acces scope modifier like&nbsp;“public",&nbsp;“internal" or "fileprivate”&nbsp;</span></font></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></p><div class=""><span style="font-variant-ligatures: no-common-ligatures" class=""><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="color: rgb(186, 45, 162);" class="">closedscope</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">class</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;TG3DGauge:&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">SCNNode</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">{</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;needles = [</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures;" class="">]() &nbsp;</span><span style="color: rgb(0, 132, 0);" class="">// is now private by default</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;fmtStr =&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(209, 47, 27);" class="">“" &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span style="color: rgb(0, 132, 0);" class="">// is now private by default</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class="">&nbsp; &nbsp;&nbsp;<br class="webkit-block-placeholder"></p><div style="margin: 0px; line-height: normal;" class=""><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">public var</span><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures;" class="">&nbsp;value:&nbsp;</span><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">CGFloat</span><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures;" class="">&nbsp;=&nbsp;</span><span style="font-family: Menlo; font-size: 17px; font-variant-ligatures: no-common-ligatures; color: rgb(39, 42, 216);" class="">0&nbsp;</span><font color="#008400" face="Menlo" class=""><span style="font-size: 17px;" class="">// Public!! visible outside class also for&nbsp;“fileprivate" or&nbsp;“internal”&nbsp;&nbsp;</span></font></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-family: Menlo; font-size: 17px;" class="">&nbsp; &nbsp;</span><span style="font-family: Menlo; font-size: 17px;" class="">&nbsp;</span><span style="font-family: Menlo; font-size: 17px;" class="">{</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; color: rgb(0, 132, 0);" class=""><span style="font-variant-ligatures: no-common-ligatures; color: rgb(0, 0, 0);" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">didSet</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(0, 0, 0);" class="">&nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures;" class="">// trigger value change, rotate needles etc.</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;{</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(49, 89, 93);" class="">valueChange</span><span style="font-variant-ligatures: no-common-ligatures;" class="">()</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;}</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;&nbsp; &nbsp;</span><br class="webkit-block-placeholder"></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;nodeUnitText =&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures;" class="">() &nbsp;</span><span style="color: rgb(0, 132, 0);" class="">// is now private by default</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp; &nbsp;&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(186, 45, 162);" class="">var</span><span style="font-variant-ligatures: no-common-ligatures;" class="">&nbsp;nodeValueText =&nbsp;</span><span style="font-variant-ligatures: no-common-ligatures; color: rgb(112, 61, 170);" class="">SCNNode</span><span style="font-variant-ligatures: no-common-ligatures;" class="">()&nbsp;</span><span style="color: rgb(0, 132, 0);" class="">// is now private by default</span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="color: rgb(0, 132, 0);" class=""><br class=""></span></div><div style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo;" class=""><span style="color: rgb(0, 132, 0);" class="">&nbsp; &nbsp; //etc.</span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><br class=""></p><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">This&nbsp;“closedscope" modifier should only be effective for the current class, not its superclass(es),</span></font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">allowing one to hide/reveal entities in each class&nbsp;independently&nbsp;being part of the&nbsp;hierarchy.</span></font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">Also entities declared private should not be visible in descendant classes</span></font></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">Also please note that I do miss the&nbsp;“protected” scope access modifier which allows entities to be exclusively</span></font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class="">visible to descendant classes, as in Java. Why not implement it in Swift as well? &nbsp;</span></font></div><div style="margin: 0px; line-height: normal;" class=""><font color="#0433ff" class=""><span style="font-size: 14px;" class=""><br class=""></span></font></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">AFAICS: &nbsp;All mentioned here would not be a source breaking.&nbsp;</font></span></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">Opinions, remarks welcome.</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">met vriendelijke groeten</font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class="">Ted</font></span></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><br class=""></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><div style="margin: 0px; line-height: normal;" class=""><span style="font-size: 14px;" class=""><font color="#0433ff" class=""><br class=""></font></span></div><p style="margin: 0px; font-size: 17px; line-height: normal; font-family: Menlo; min-height: 20px;" class=""><br class=""></p></span></div></body></html>