2

我做了简单的报警应用程序。在 Swift4 或 swift 获得主情节提要时,我可以使用 dateformatter 获取当前时间。但现在我得到了 Xcode(v.11.1),我不能使用 dateformatter。我的代码很简单,我是初学者。如果我以这种方式编写代码,我会遇到 6 个问题。

一行中的连续声明必须用';'分隔

函数声明的参数列表中应为“(”

函数声明体中应为“{”

实例方法声明中预期的“func”关键字

预期声明

'dateFormatter()' 的无效重新声明

我知道这对你来说将是一个非常简单的问题我搜索谷歌,文档甚至堆栈但我无法找到任何正确的方法来解决这个问题。

import SwiftUI
import Foundation


struct Alarm_view: View {

let time = Date()
let timeFormatter = DateFormatter()
timeFormatter.dateFormat = "HH:ss"
let stringDate = dateFormatter.string(from: time)


@State var selecttimes = Date()
@State var sound = 1
@State var currenttimes = NSDate()
@State var currenttimetext = Date()
@State var timetext = Date()


var body: some View {
    VStack {
        NavigationView{
            Form {
                Section {
                    DatePicker(selection: $selecttimes,displayedComponents: .hourAndMinute, label: { Text("tamest") })
                    Picker(selection: $sound, label: Text("alarm")) {
                        /*@START_MENU_TOKEN@*/Text("1").tag(1)/*@END_MENU_TOKEN@*/
                        /*@START_MENU_TOKEN@*/Text("2").tag(2)/*@END_MENU_TOKEN@*/
                        Text("3").tag(3)
                    }
                }
            }.navigationBarTitle(Text("alarm set"))
        }
        VStack {
            Button("start") {
                self.timetext = self.selecttimes


            }.foregroundColor(Color.black).offset(y:-5)
            Button(action: /*@START_MENU_TOKEN@*/{}/*@END_MENU_TOKEN@*/) {
            Text("stop")
                .foregroundColor(Color.red)
        }
        }.offset(y: -10)
        Text("\(timetext)")
        Text("\(currenttimetext)")

    }
}

}
struct Alarm_view_Previews: PreviewProvider {
static var previews: some View {
    Alarm_view()
}
}
4

2 回答 2

7

您应该在函数中定义以下代码

    let time = Date()
    let timeFormatter = DateFormatter()
    timeFormatter.dateFormat = "HH:ss"
    let stringDate = timeFormatter.string(from: time)


    func getDate()->String{
     let time = Date()
     let timeFormatter = DateFormatter()
     timeFormatter.dateFormat = "HH:ss"
     let stringDate = timeFormatter.string(from: time)
     return stringDate
    }

希望这可以帮助您解决问题

于 2020-02-05T04:08:49.780 回答
6

从 iOS 14 开始,Text有一个名为 style 的属性,用于显示日期。

文本日期样式

用于显示日期的预定义样式。https://developer.apple.com

您不需要使用DateFormatter. 使用Text()with timeas 样式可能就足够了。

Text(Date(), style: .time) 

在你的情况下:

Text(timetext, style: .time)
Text(currenttimetext, style: .time)
于 2021-03-08T09:26:15.390 回答