我正在制作一个简单的计划程序应用程序,它会在事件发生的特定时间向用户发送通知。
我已经设置了一个表来存储数据,我将各个值存储在数组中。
我遇到输出我存储在数组中的NSDates的问题。
import UIKit
extension NSDate {
convenience init(dateString:String, format:String="h-mm a") {
let formatter = NSDateFormatter()
formatter.timeZone = NSTimeZone.defaultTimeZone()
formatter.dateFormat = format
let d = formatter.dateFromString(dateString)
self.init(timeInterval:0, sinceDate:d!)
}
class MedicineTableViewController: UITableViewController {
//MARK Properties
var medicines = [Medicine]()
override func viewDidLoad() {
super.viewDidLoad()
loadSampleMedicine()
}
func loadSampleMedicine() {
let medicine1 = Medicine(name: "Inhaler", time1: NSDate(dateString: "08:00 a"), time2: NSDate(dateString: "10:00 a"), time3: NSDate(dateString: "02:00 p"), time4: NSDate(dateString: "06:00 p"), time5: NSDate(dateString: "10:00 p"))
medicines.append(medicine1!)
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return medicines.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "MedicineTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MedicineTableViewCell
let medicine = medicines[indexPath.row]
cell.nameLabel.text = medicine.name
cell.takeAt.text = "Take At:"
cell.time1Label.text = medicine.time1
cell.time2Label.text = medicine.time2
cell.time3Label.text = medicine.time3
cell.time4Label.text = medicine.time4
cell.time5Label.text = medicine.time5
return cell
}
这会返回错误“无法将'NSDate'的值赋给String类型的值?”
有没有办法将这些NSDates转换为字符串?
我已经提出了一些其他可能的解决方案,但它涉及重新整理整个应用程序,所以我希望尽可能避免使用它们。
我可能的解决方案是将用户输入的数据返工为pickerView,其中有3列,其中一列是数字01到12,第二节是00到59,第三点是上午和下午。然后获取生成的整个字符串并将其存储在数组中。这将允许我轻松打印出来,因为它只是一个存储的字符串。然后,当我进入制作通知系统的阶段时,我可以使用“dateString”函数将字符串转换为日期,然后从中编写通知。
总的来说,我想知道我是否能够打印出存储在我的阵列中的NSDates,或者如果我的可能的解决方案能够正常工作那么?
感谢。
答案 0 :(得分:1)
您可以使用NSDateFormatter
。有一个名为stringFromDate
的函数。这是一个例子。
var date = NSDate() //Or whatever your date is
var stringDate = NSDateFormatter().stringFromDate(date)