ios – 静态计算变量被多次实例化

ios – 静态计算变量被多次实例化,第1张

概述我有一个日期格式化程序,我试图在UITableViewCell子类中创建一个单例,所以我创建了一个这样的计算属性: private static var dateFormatter: NSDateFormatter { print("here here") let formatter = NSDateFormatter() formatter.dateFormat = "E 我有一个日期格式化程序,我试图在UItableVIEwCell子类中创建一个单例,所以我创建了一个这样的计算属性:
private static var dateFormatter: NSDateFormatter {    print("here here")    let formatter = NSDateFormatter()    formatter.dateFormat = "EEEE h a"    return formatter}

问题是我不止一次看到print语句,这意味着它不止一次被创建.我已经找到了其他方法(比如插入外部课程或类课程),但我很想知道这里发生了什么.有任何想法吗?

解决方法 您的代码段相当于只获取属性,基本上它与以下内容相同:
private static var dateFormatter: NSDateFormatter {    get {        print("here here")        let formatter = NSDateFormatter()        formatter.dateFormat = "EEEE h a"        return formatter    }}

如果你只想运行一次,你应该像定义一个惰性属性一样定义它:

private static var dateFormatter: NSDateFormatter = {    print("here here")    let formatter = NSDateFormatter()    formatter.dateFormat = "EEEE h a"    return formatter}()
总结

以上是内存溢出为你收集整理的ios – 静态计算变量被多次实例化全部内容,希望文章能够帮你解决ios – 静态计算变量被多次实例化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存