0
我想要子類UILabel並自動爲其中一個屬性生成一個值,以便我可以初始化某些值,並讓其他值隨機生成。爲類屬性生成值
例如,在這裏我希望能夠創建一個新的MyLabel,爲labelString傳入一個值,併爲labelNumber生成隨機生成的值。
class MyLabel: UILabel {
var labelString : String!
var labelNumber : Int!
init(frame: CGRect, labelString: String) {
self.labelString = labelString
self.labelNumber = createNumber()
super.init(frame: frame)
}
func createNumber() -> Int {
return Int(arc4random())
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
在super.init初始化自我之前,我得到錯誤「方法調用中使用'self'。有沒有辦法解決這個問題,或者是一個更好的模式來使用?
非常感謝您的幫助!
順便問一下,有什麼特別的理由讓'labelString'和'labelNumber'成爲* Optional * s?你有什麼理由讓他們'沒有',在這種情況下閱讀他們會因爲你做出來而崩潰*隱式解包可選* s。 – vacawama
使參數選項出來後,另一課(盲目),但在我的情況下,這是沒有必要的。所以第二個解決方案在這裏不起作用,一旦它們不是可選項,但是Static函數是完美的!感謝幫助我解決問題。 – enesefuu
不客氣。您可以通過將其聲明爲'var labelNumber = 0'來使第二個解決方案適用於非可選項 – vacawama