Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法指定类型为';NSDate&x27;设置为类型为';字符串?';_Ios_String_Swift_Nsdate - Fatal编程技术网

Ios 无法指定类型为';NSDate&x27;设置为类型为';字符串?';

Ios 无法指定类型为';NSDate&x27;设置为类型为';字符串?';,ios,string,swift,nsdate,Ios,String,Swift,Nsdate,我正在自学swift,我还是个新手,但我决定制作一个简单的应用程序,当你按下按钮时,它会打印出当前时间。viewcontroller文件中的代码如下所示: import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() } @IBOutlet weak var LblTime: UILabel! @IBA

我正在自学swift,我还是个新手,但我决定制作一个简单的应用程序,当你按下按钮时,它会打印出当前时间。viewcontroller文件中的代码如下所示:

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    @IBOutlet weak var LblTime: UILabel!
    @IBAction func BtnCalltime(sender: AnyObject) {
            var time = NSDate()
            var formatter = NSDateFormatter()
            formatter.dateFormat = "dd-MM"
            var formatteddate = formatter.stringFromDate(time)
            LblTime.text = time
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
}
我对线路有问题:

LblTime.text = time
我不断得到错误:

无法将“NSDate”类型的值分配给“String”类型的值

我试过使用:

lblTime.text = time as! string?
以及:

但它仍然不起作用,我将非常感谢您的帮助。
谢谢

您需要使用格式化程序中的值

@IBAction func BtnCalltime(sender: AnyObject) {
    var time = NSDate()
    var formatter = NSDateFormatter()
    formatter.dateFormat = "dd-MM"
    var formatteddate = formatter.stringFromDate(time)
    LblTime.text = formatteddate
}

您已经从NSDate创建了字符串,只是没有使用它

lblTime.text = formatteddate

日期现在优先于NSDate。这是一个覆盖类,意味着两者都可以工作,但Date有很多优点,其中一些优点

下面是如何使用date而不是NSDate将日期格式化为字符串

var time = Date()
var formatter = DateFormatter()
formatter.dateFormat = "MMM d yyyy, h:mm:ss a"
let formattedDateInString = formatter.string(from: time)

dateLabel.text = formattedDateInString
获取格式化程序字符串的好网站是 我不知道
“MMM d yyyy,h:mm:ss a”
将等于
3月1日上午7:02:35
,但该网站使它变得简单

这对你有帮助
var time = Date()
var formatter = DateFormatter()
formatter.dateFormat = "MMM d yyyy, h:mm:ss a"
let formattedDateInString = formatter.string(from: time)

dateLabel.text = formattedDateInString