目前我从Rails API获取所有发票数据。
sed -i "s/user=$/user="${u}"/" "$SCRIPT_PATH"
sed -i "s/pass=$/pass="${p}"/" "$SCRIPT_PATH"
然后我将带有结果的数组传递给InvoicesController中的委托人:
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()
}
但是我无法将发票[“invoice_date”]可选转换为有效日期,目前它返回的是nil。
我在Playground中尝试了一些东西,并且它使用了一个Optional值:
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"])
)
}
})
}
使用:
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"]))!
有人提出一些建议吗?我在iOS 9平台上使用swift 2。
答案 0 :(得分:0)
评论中回答了问题,但我想我会把它放在这里:
演员表中存在问题,并使用
invoice["invoice_date"] as! String
解决了它。