ios - 在 Swift 3 中将类与同名的实例成员区分开来
<p><p>在 Swift 3 中如何区分实例成员和同名的类成员?现在通常在 Xcode 8 beta 5 中正常工作的方法会产生错误:</p>
<blockquote>
<p>"static member 'textColor' cannot be used on instance of type UITag"</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 = " not set "
}
}
</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]