スコアを表示する必要性に特化した、UILabel
calledのサブクラスを作成しましたUIScoreLabel
。コードは次のとおりです。
class UIScoreLabel: UILabel
{
var scoreBackingInt: Int!
var score: Int {
get
{
return scoreBackingInt
}
set(newScore)
{
scoreBackingInt = newScore
self.text = NSString(format: "%0\(digits)d", newScore)
}
}
let digits: Int! // number of digits to display (for 0-padding)
init(digits: Int)
{
super.init()
self.digits = digits
self.score = 0
}
}
score
計算された変数であると想定されています。とにかく、UIScoreLabelをインスタンス化するときはすべて問題ありませんが、サブクラスのプロパティに何らかの方法でアクセスしようとすると(つまりscore
)、コンパイラは私に教えてくれます'UILabel' does not have a member named 'score'
ViewControllerでエラーが発生する行は次のとおりです。
creditsLabel.score = self.score
何が得られますか?
コンパイラにクラスタイプを知らせる必要があります。エラーメッセージでわかるように、コンパイラは現在クラスがUILable
そうであると考えているので、クラスタイプを更新する必要があります(またはできない場合はクラスタイプをキャストします)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加