【问题标题】:Display a different message depending on date of the week根据星期几显示不同的消息
【发布时间】:2017-12-21 13:04:08
【问题描述】:

对于我正在处理的项目,我想创建一个应用程序,根据星期几(例如,星期一星期二、星期三等)显示不同的文本,但是我不知道从这里做什么.任何帮助将不胜感激,因为我也是编码新手。 (因为以下代码似乎没有按预期运行。

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()
        let date = Date()
        let calendar = Calendar.current

        let hour = calendar.component(.hour, from: date)
        let minutes = calendar.component(.minute, from: date)
        let seconds = calendar.component(.second, from: date)

        let day = calendar.component(.day, from: date)
        let month = calendar.component(.month, from: date)
        let year = calendar.component(.year, from: date)

        if day = 21 {
            label.text = "not comming today"
        }
        else if day = 22 {
            label.text = "not comming today"
        }
        else if day = 23 {
            label.text = "is comming today"
        }
    }    

}

【问题讨论】:

  • 你想要的是NSCalendarUnitWeekday
  • 该代码甚至无法编译...您正在尝试为if 子句中的常量分配一个值,而不是使用比较运算符(==) 进行比较。此外,您似乎想使用let dayOfTheWeek = calendar.component(.weekday, from: date),它会返回一周中一天的位置。
  • 我试过这样做,但是在尝试运行它时,我收到了错误消息“线程 1 错误 SIGABRT”,并且它没有显示该消息...

标签: ios swift date time


【解决方案1】:

您需要weekday 组件

let weekday = calendar.component(.weekday, from: date)
switch weekday {
  case 1: print("It's Sunday")
  case 2: print("It's Monday")
  ...
  case 7: print("It's Saturday")
  default: break
}

【讨论】:

  • 我试过这样做;但是,以下似乎不起作用:@IBOutlet weak var MYLABEL: UILabel! override func viewDidLoad() { super.viewDidLoad() let date = Date() let calendar = Calendar.current let dayOfTheWeek = calendar.component(.weekday, from: date) if dayOfTheWeek == 4 { self.MYLABEL.text = " hello4" } else if dayOfTheWeek == 5 { self.MYLABEL.text = "hello5" } }
  • 如果您的代码崩溃,请在 Interface Builder 中连接标签。
  • 再一次,很可能插座没有连接
  • +1 @vadian 再一次,您在控制台中有任何错误消息吗?你能展示一下吗?找到可选的零值还是什么?因为 vadian 提供的代码不应该导致崩溃。
  • 在问题中UILabel 在评论MYLABEL 中被命名为label。如果您在代码中重命名插座,则必须在 Interface Builder 中断开连接并重新连接(除非您使用 Xcode 9 Refactor 功能)
猜你喜欢
  • 2018-09-13
  • 1970-01-01
  • 2016-02-25
  • 2016-10-22
  • 2016-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-06
相关资源
最近更新 更多