【发布时间】:2016-02-26 15:25:05
【问题描述】:
这个标题听起来很笼统,尽管它是一个特定的问题。我只是不知道如何更好地描述它......
我已经阅读了很多关于 swift 错误处理的内容。但我仍然不知道如何解决这个简单的(至少在 Objective-C 中)任务。
我有一个文本字段,想读出字符串值...而不是将其格式化为Date 值。到目前为止没有问题。但是,如果您输入的值与指定的日期格式不匹配,我会收到一个错误消息(没关系……它的格式不正确)。在这种情况下,我只想保存一个标准值。在 Objective-C 中,我会使用 @try-@catch 循环来完成此操作。 swift 中不再存在这种异常处理了吗?
这是我的(Swift 2)代码。希望有人能解答。
func getDateFromTextfield() throws -> NSDate
{
let formatter:NSDateFormatter = NSDateFormatter()
formatter.dateFormat = "dd.MM.yyyy"
formatter.timeZone = NSTimeZone(name: "UTC")
// Here should be a "throw expression" but I dont know how to set it.
let date = formatter.dateFromString(dictOfLabelsAndText["Birthdate"] as! String)!
return date
}
do
{
child.birthdateAT = try self.getDateFromTextfield()
}
catch {
child.birthdateAT = formatter.dateFromString("01.01.2000")
print("wrong date") //Or whatever error
}
【问题讨论】:
-
另外,如果您可能没有有效的生日,而不是存储 2000 年 1 月 1 日,我可能会建议定义
birthdateAT以便它是可选的。将未知生日表示为nil比1/1/2000好得多。
标签: swift error-handling nsdate