我有三个条件:
data.weight和myoutput都是nilmyoutput没有价值data.weight和myoutput都有一个值
重写func viewWillAppear(_ .viewWillAppear: Bool) {超级.viewWillAppear(动画) self.navigationItem.hidesBackButton = true let myOutput = UserDefaults.standard.string(forKey:"height")让dateFormator = DateFormatter() dateFormator.dateFormat = "dd.MM.yyyy“let data =WeightTracker.mr_findFirst(格式:"date == %@",dateFormator.string(from: Date()作为?如果WeightTracker myOutput == nil && data?.weight == nil { bmiLabel.text =WeightTracker {让myOutput: AnyObject?= UserDefaults.standard.object(forKey:“高度”)作为AnyObject var sum = (myOutput as!( NSString).doubleValue / 1000设total1 = sum * sum = Double(Int(data.weight!)!) / total1 let dye =总计/100.00 bmiLabel.text =String(染料)}}应只计算第三个条件的总和。处理这件事的正确方法是什么?
发布于 2019-04-26 11:36:51
if let myOutput = UserDefaults.standard.string(forKey: "height") as? NSString , let weight = data?.weight {
let dateFormator = DateFormatter()
dateFormator.dateFormat = "dd.MM.yyyy"
if let data = WeightTracker.mr_findFirst(with: NSPredicate(format: "date == %@", dateFormator.string(from: Date()))) as? WeightTracker{
var sum = myOutput.doubleValue / 1000
let total1 = sum * sum
let total = Double(Int(weight)!) / total1
let dye = total/100.00
bmiLabel.text = String(dye)
}
} else {
bmiLabel.text = "--"
}发布于 2019-04-26 12:15:10
你为什么不往另一边走呢?
if myOutput != nil && data?.weight != nil {
// Your logic here
}
else {
bmiLabel.text = "--"
}或者可以将if完全替换为if-let,以提供安全的展开并消除可选的链接和/或强制展开。
if let myOutput = myOutput, let weight = data?.weight {
// Your logic here
}
else {
bmiLabel.text = "--"
}或者,如果您希望提供早期转义,则甚至可以使用guard-let。
guard let myOutputUnwrapped = myOutput, let weight = data?.weight else {
bmiLabel.text = "--"
return
}
/* Your logic here */if-let和guard-let的优点在于,您已经可以使用一个未包装的值,因此不必担心变量的!和?。
https://stackoverflow.com/questions/55866708
复制相似问题