【发布时间】:2017-10-07 09:20:11
【问题描述】:
我似乎无法摆脱以下标签中的“可选”标签。我查看了不同的资源,但无法弄清楚要实施什么。你能告诉我我错在哪里吗?
class RatingViewController: UIViewController {
@IBOutlet weak var rateLabel: UILabel!
@IBOutlet weak var rateView: EmojiRateView!
var ServicePoint: String!
var ref:DatabaseReference?
let ratingTexts = [NSLocalizedString("Çok Kötü", value:"Very Bad", comment: ""), NSLocalizedString("Kötü", value:"Bad", comment:""), NSLocalizedString("Normal", value:"Normal", comment:""), NSLocalizedString("İyi", value:"Good", comment:""), NSLocalizedString("Çok iyi", value:"Very good", comment:""), NSLocalizedString("Mükemmel", value:"Perfect", comment:"")]
var newRateSyting = String("%.2f, %@")!
override func viewDidLoad() {
super.viewDidLoad()
rateView.rateValueChangeCallback = {(rateValue: Float!) -> Void in
self.rateLabel?.text = String(format: self.newRateSyting, rateValue, self.ratingTexts[Int(rateValue)])
}
}
【问题讨论】:
-
在 Apple 的 Swift 书中查找“Optionals”,您会得到答案(以及更多)。
-
设置“!”在值末尾标记确保值不会为 nil 否则您可以使用 "?? "Value not found""
-
并命名你的变量,在你的情况下
ServicePoint以小写servicePoint开头。不是必须的,但会让您的生活更轻松。 -
我无法重现您的问题。
print(self.ratingTexts[Int(rateValue)])显示什么?