gpt4 book ai didi

swift - 尝试对可选字符串进行日期格式化

转载 作者:行者123 更新时间:2023-11-30 14:15:13 25 4
gpt4 key购买 nike

目前我正在从 Rails API 获取所有发票数据。

func get(path: String) {
let url = NSURL(string: path)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
if(error != nil) {
print(error!.localizedDescription)
}
do {
let results = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableLeaves)
self.delegate.didReceiveAPIResults(results as! NSArray)
} catch {
print("Error")
}
})

task!.resume()
}

然后我将带有结果的数组传递给 InvoicesController 中的委托(delegate):

func didReceiveAPIResults(results: NSArray) {
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
dispatch_async(dispatch_get_main_queue(), {
for invoice in results {
// Create an individual item
Invoice.createInManagedObjectContext(self.managedObjectContext,
invoiceStatus: String(invoice["status"]),
invoicePrice: NSDecimalNumber(string: String(invoice["price"])),
invoiceDate: dateFormatter.dateFromString("2015-06-22T17:57:21.313Z")!,
invoiceDueDate: String(invoice["invoice_date"])

)
}
})
}

但我无法将可选的发票[“invoice_date”]转换为有效日期,目前它返回零。

我在 Playground 中尝试了一些东西,它可以使用可选值:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

var dateString:String? = "2015-06-22T17:57:21.313Z"

dateFormatter.dateFromString(dateString!)

通过使用:

invoiceDate: dateFormatter.dateFromString(String(invoice["invoice_date"]))!

我收到此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value (lldb) 

有人有什么建议吗?我在 iOS 9 平台上使用 swift 2。

最佳答案

问题已在评论中得到解答,但我想我应该把它放在这里:

Actor 阵容出现问题,正在使用

invoice["invoice_date"] as! String

解决了。

关于swift - 尝试对可选字符串进行日期格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31272999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com