我正在尝试在扩展文件中称呼用户defualt。我不知道如何调用以使其在视图控件中显示为文本。在扩展文件中,如果我只是进行打印计数,它会完美地显示在日志文件中。
extension UIViewController {
func updateVisitCount() {
let key = String(describing: type(of: self))
let count = UserDefaults.standard.value(forKey: key) as? Int ?? 0
UserDefaults.standard.set(count + 1, forKey: key)
}
}
class easy: UIViewController {
@IBOutlet var Name: UILabel!
override func viewDidLoad() {
Name.text = count
}
}
答案 0 :(得分:0)
您的代码无法编译,因为您试图访问超出其范围的变量。
范围是指变量和方法在其中一部分的可见性 一个程序到该程序的另一部分。重要性和意义 范围因语言而异,但是有两个通用范围 许多语言都有共同的概念:本地和全局范围。 https://en.wikiversity.org/wiki/Introduction_to_Programming/Scope
class Easy: UIViewController {
@IBOutlet var name: UILabel!
override func viewDidLoad() {
name.text = String(visitCount)
// didn't see it in your code but thought you might want this...
updateVisitCount()
}
}
extension UIViewController {
private var visitCountKey: String { return String(describing: type(of: self)) }
var visitCount: Int{
return UserDefaults.standard.value(forKey: visitCountKey) as? Int ?? 0
}
func updateVisitCount() {
UserDefaults.standard.set(visitCount + 1, forKey: visitCountKey)
}
}