swift - 在 Swift 4 中创建简单的倒计时日期应用程序时出错
问题描述
因此,我目前正在开发一个可以对特定日期进行简单倒计时的应用程序;但是,我收到此错误:“类型值 '(NSCalendar.Unit, Date, Date [NSCalendar.Options]) -> ()' has no member 'day'”
有什么办法可以解决这个问题以完成应用程序?
class ViewController: UIViewController {
@IBOutlet weak var CountdownText: UILabel!
let formatter = DateFormatter()
let userCalendar = NSCalendar.current
let requestedComponent: NSCalendar.Unit = [
NSCalendar.Unit.month,
NSCalendar.Unit.day,
NSCalendar.Unit.hour,
NSCalendar.Unit.minute,
NSCalendar.Unit.second,
]
func printTime()
{
formatter.dateFormat = "MM/dd/yy hh:mm:ss a"
let startTime = NSDate()
let endTime = formatter.date(from: "12/03/18 2:00:00 p")
func timeDifference (requestedComponent: NSCalendar.Unit, from: Date, to: Date, options: [NSCalendar.Options]) {}
CountdownText.text = "\(timeDifference.day) Days \(timeDifference.minute) Minutes \(timeDifference.second) Seconds"
}
}
解决方案
您正在尝试.day
从您的类型中获取调用属性,function
该类型没有返回任何内容。我打赌你的函数timeDifference
应该在printTime
函数之外的某个地方。相信你想做如下的事情:
func printTime() {
formatter.dateFormat = "MM/dd/yy hh:mm:ss a"
let startTime = Date()
let endTime = formatter.date(from: "12/03/18 2:00:00 p")
let days = timeDifference(requestedComponent: .day, from: startTime, to: endTime, options: [])
let minutes = timeDifference(requestedComponent: .minute, from: startTime, to: endTime, options: [])
let seconds = timeDifference(requestedComponent: .second, from: startTime, to: endTime, options: [])
CountdownText.text = "\(days) Days \(minutes) Minutes \(seconds) Seconds"
}
func timeDifference (requestedComponent: NSCalendar.Unit, from: Date, to: Date, options: [NSCalendar.Options]) -> Int {
var calculatedValue = 0
// calculatings
return calculatedValue
}
推荐阅读
- git - 如何在 Fiddler 中检查 git 流量
- javascript - 组件不显示更新的 redux 状态
- haskell - 定义 foldr 变体时出现非详尽模式错误
- php - PHP:替换文件中的行或如果找不到则添加
- raku - perl6:为什么数组在声明中跳过计算值?
- java - 为什么每次打开应用程序时我的 Firebase 实时数据库数据都会重置?
- javascript - 例如在javascript中识别大数组的更好方法是什么?(一般格式规则)
- ffmpeg - 如何在 C 中解码来自这个无名的几乎 UVC 灰度相机的流
- amazon-web-services - AWS 胶水:忽略 JSON 属性中的空格
- java - 弹出窗口不点击链接