菜鸟教程小白 发表于 2022-12-11 17:17:58

ios - 在 Swift 3 中将类与同名的实例成员区分开来


                                            <p><p>在 Swift 3 中如何区分实例成员和同名的类成员?现在通常在 Xcode 8 beta 5 中正常工作的方法会产生错误:</p>

<blockquote>
<p>&#34;static member &#39;textColor&#39; cannot be used on instance of type UITag&#34;</p>
</blockquote>

<pre><code>public class UITag : UILabel {

    static var textColor = UIColor.white

   override public init(frame: CGRect) {
      super.init(frame: frame)

      textColor = UITag.textColor /* error: static member cannot be used on instance of type UITag */
      text      = &#34; not set &#34;
   }
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这是一个奇怪的错误,我们可以讨论它是否是一个编译器错误,它实际上允许用一个静态变量隐藏一个非静态变量,但是请注意,拥有两个具有相同属性的属性绝对是糟糕的代码名字,一个是静态的,一个不是静态的,因为最后一个会影响前一个。 <code>defaultTextColor</code> 可能是一个更好的名称。</p>

<p>一个简单的解决方法是使用:</p>

<pre><code>super.textColor = ...
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 Swift 3 中将类与同名的实例成员区分开来,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/39020146/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/39020146/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 Swift 3 中将类与同名的实例成员区分开来