我很困惑。我需要比较产品日期代码。他们看起来像12-34-56。我写了一些代码来分解各个部分并进行比较。该代码可以在操场上正常工作。但是,当我在视图控制器中将其设置为函数时,出现NIL值,并且在打印到日志或在休息时查看时,会得到很多“ Optional(“ 12-34-56”)“值。我尝试过在许多地方拆包,但是什么也没做。不要被日期和月份变量弄糊涂,因为它们不是产品代码,根据所使用的生产机器,它们可以有90天90个月。
func compaireSerial(oldNumIn: NSString, newNumIn: String) -> Bool {
// take the parts of the number and compare the pics on at a time.
// Set up the old Num in chunks
let oldNum = NSString(string: oldNumIn)
let oldMonth = Int(oldNum.substringToIndex(2))
let oldDay = Int(oldNum.substringWithRange(NSRange(location: 3, length: 2)))
let oldYear = Int(oldNum.substringFromIndex(6))
print(oldMonth,oldDay, oldYear)
// Set up the new Num in chunks
let newNum = NSString(string: newNumIn)
let newMonth = Int(newNum.substringToIndex(2))
let newDay = Int(newNum.substringWithRange(NSRange(location: 3, length: 2)))
let newYear = Int(newNum.substringFromIndex(6))
print(newMonth, newDay, newYear)
// LETS Do the IF comparison steps.
if oldYear < newYear {
return true
} else if oldMonth < newMonth {
return true
} else if oldDay < newDay {
return true
} else {
return false
}
}
可能要感谢任何一个。我完全陷入了困境
最佳答案
所有具有Int()
参数的String
初始化程序始终返回可选的Int
。
“游乐场”中的“实时结果”列不指示可选项,但可以打印。
let twentyTwo = Int("22") | 22
print(twentyTwo) | "Optional(22)\n"
关于swift - 为什么在函数中 swift 使用变量选项,而不是在操场上,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35187959/