【问题标题】:setting UIDateFormatter from String in Swift (1.2)在 Swift (1.2) 中从 String 设置 UIDateFormatter
【发布时间】:2017-06-07 18:06:19
【问题描述】:

我想做的是从保存日期的字符串中检索日期,并将其传递给 UIDatePicker(滚动日期选择器元素),所以这是我的一段代码:

@IBOutlet weak var myDatePicker: UIDatePicker!
@IBOutlet weak var nameTextField: UITextField!   

@IBOutlet weak var saveButton: UIBarButtonItem!

    //converting date to string to show in table cell

    func dateToString (date: NSDate) -> String {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
        return dateFormatter.stringFromDate(date)
    }

    //converting string from table cell to edit date

    func stringToDate (string: NSString) -> NSDate {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
        return dateFormatter.dateFromString(dateToString (myDatePicker.date))!
    }

// here we are saving our data picked from text field and date picker UIs

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if saveButton === sender {
            let name = nameTextField.text ?? ""
            let date = dateToString (myDatePicker.date) ?? ""
            item = Item (name: name, date: date)
        }
    }

// Here we are retrieving data when press tableCell cell:

override func viewDidLoad() {
        super.viewDidLoad()
        if let item = item {
            nameTextField.text = item.name
            myDatePicker.setDate(stringToDate(item.date), animated: true)

            // also need to pass date smhw
        }
    }

从 UIDatePicker 保存到 UITableCell 中的字符串 - 没问题,将字符串 (UILabel) 传递给 UITextField - 没问题,但我无法将字符串传递给 UIDatePicker。 没有警告,构建 - 没问题,启动,但没有采取任何行动。 请就这个问题提出解决方案。我正在编写 swift 1.2。

【问题讨论】:

  • 你为什么使用 1.2?不要在 1.2 中编码。严重地。你知道 4 刚刚发布吗?尝试在 swift 3 中编写代码。您将获得更多可以使用和发扬光大的帮助。
  • 我买不起mac或macbook,这就是我使用VMWare的原因。而且因为我的 CPU 是 AMD,只能通过虚拟机安装 OS X 10.10.5,所以我唯一的选择是 Xcode 6.2,它有 swift 1.2。请在这里通过 swift 3.0 中的解决方案,我将更正它的语法:)
  • 很遗憾听到这个消息????对不起我的cmets。只是如果您使用的是非常旧的软件,则很难为您提供帮助。更糟糕的是,你必须学习一些现在错误的东西!你必须忘记一堆东西才能​​成为最新的。当我回到我的 Mac 时,我会再看看你的问题。我应该能够帮助你。虽然我希望其他人在我之前做——这将是几个小时。
  • 感谢您的理解。我正在学习基础知识,基本上Xcode 6的结构与版本8非常相似,一开始还可以,而且我也经常看到一些swift 3代码示例,所以我熟悉一些变化......虽然我真的在想关于订阅 VirtualMac 有点像在实际环境中编码。
  • 祝您好运,并在可能的情况下很乐意为您提供帮助。 !

标签: ios swift date set uidatepicker


【解决方案1】:
func stringToDate (string: String) -> NSDate {
        let dateFormatter = NSDateFormatter()
        dateFormatter.dateFormat = "dd-MM-yyyy HH:mm"
        return dateFormatter.dateFromString(string)!
    }

这行得通。

【讨论】:

    猜你喜欢
    • 2016-01-09
    • 2015-02-10
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多