0320 - 保持敬畏之心

今天又试了下,竟然真的找到了 Swift 的模糊日期识别方法:

1
2
3
4
5
6
extension String {
public var possibleDate: Date? {
let detector = try? NSDataDetector(types: NSTextCheckingResult.CheckingType.date.rawValue)
return detector?.firstMatch(in: self, options: [], range: NSRange(location: 0, length: (self as NSString).length))?.date
}
}

哎,早点怎么没找到。当初花了大力气解决 Kindle 中的模糊日期,现在看来比较亏。唯一安慰自己的是:

  • 自己的方案虽然繁琐些,但速度是上述方法的 2.5 倍。
  • 另外,这一方案不能显式地设置 Locale,应用上还有点局限。

看来,自己对 Swift 的基础库还是不够熟悉。

要相信现实世界是复杂的,相信程序是复杂的,相信别人做了很多工具,相信自己要学的东西还有很多。如果碰巧解决了问题,要么是在别人工作的基础上,要么是运气好。保持敬畏之心,才能更虔诚的学习,更用户的做产品。


另外,遇到问题,不要一头扎进去解决问题,要先想一想:

  • 能不能不让问题出现?
  • 能不能绕过问题?
  • 解决问题的最佳办法是什么?

想过上面 3 个问题后,再去解决问题本身。