找不到将 NSDate 转换为字符串的正确逻辑
Cannot find the right logic to translate the NSDate to string
我是 swift 的新手,发现这个很难,所以说它不能解析为变量,因为它不是字符串。
我搜索并找到了一些东西,但它与我的代码类型无关,所以我恳请它:)
let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"
let date: NSDate? = dateFormatterGet.date(from: currentVechicle.LastCommunicationDate!) as NSDate?
print(dateFormatterPrint.string(from: date! as Date))
cell.perditsuarOutlet.text = date // Error: Cannot assign value of type 'NSDate?' to type 'String?'
你的 date 常量是一个 NSDate。
并且单元格 text 属性 是一个字符串。
您不能将两者配对,因为它们不是同一类型。
由于您无法更改单元格 text 类型,因此您只有 1 个选项。您必须将 NSDate 转换为字符串。
我建议看一下 Paul Hudsons 100 Days of Swift。当我刚开始的时候,这是一个很棒的资源。 link 我提供了关于他第 1 天关于字符串的课程的要点
继续努力。我保证它会变得更好:)
您正在打印正确的 String
值,但是将类型为 NSDate?
的变量 date
分配给 text
属性,这应该是String
.
尝试这样做:
let dateString = dateFormatterPrint.string(from: date! as Date)
cell.perditsuarOutlet.text = dateString
一条建议:不要在此处强制展开 (date! as Date
)。相反,包括一种方法来处理“可选”NSDate?
变量的 nil
值。一种方法如下所示:
if let date = dateFormatterGet.date(from: currentVechicle.LastCommunicationDate!) as NSDate? {
cell.perditsuarOutlet.text = dateFormatterPrint.string(from: date as Date)
} else {
cell.perditsuarOutlet.text = "Empty or invalid date"
}
我知道这看起来开销很大,但为了避免崩溃是值得的...
我是 swift 的新手,发现这个很难,所以说它不能解析为变量,因为它不是字符串。
我搜索并找到了一些东西,但它与我的代码类型无关,所以我恳请它:)
let dateFormatterGet = DateFormatter()
dateFormatterGet.dateFormat = "yyyy-MM-dd HH:mm:ss"
let dateFormatterPrint = DateFormatter()
dateFormatterPrint.dateFormat = "MMM dd,yyyy"
let date: NSDate? = dateFormatterGet.date(from: currentVechicle.LastCommunicationDate!) as NSDate?
print(dateFormatterPrint.string(from: date! as Date))
cell.perditsuarOutlet.text = date // Error: Cannot assign value of type 'NSDate?' to type 'String?'
你的 date 常量是一个 NSDate。
并且单元格 text 属性 是一个字符串。
您不能将两者配对,因为它们不是同一类型。
由于您无法更改单元格 text 类型,因此您只有 1 个选项。您必须将 NSDate 转换为字符串。
我建议看一下 Paul Hudsons 100 Days of Swift。当我刚开始的时候,这是一个很棒的资源。 link 我提供了关于他第 1 天关于字符串的课程的要点
继续努力。我保证它会变得更好:)
您正在打印正确的 String
值,但是将类型为 NSDate?
的变量 date
分配给 text
属性,这应该是String
.
尝试这样做:
let dateString = dateFormatterPrint.string(from: date! as Date)
cell.perditsuarOutlet.text = dateString
一条建议:不要在此处强制展开 (date! as Date
)。相反,包括一种方法来处理“可选”NSDate?
变量的 nil
值。一种方法如下所示:
if let date = dateFormatterGet.date(from: currentVechicle.LastCommunicationDate!) as NSDate? {
cell.perditsuarOutlet.text = dateFormatterPrint.string(from: date as Date)
} else {
cell.perditsuarOutlet.text = "Empty or invalid date"
}
我知道这看起来开销很大,但为了避免崩溃是值得的...