gpt4 book ai didi

Swift:为什么使用局部常量而不是对象属性?

转载 作者:行者123 更新时间:2023-11-28 11:23:35 24 4
gpt4 key购买 nike

我开始全神贯注于 Swift,但我觉得我在这里遗漏了一些东西。 XCode for Core Data 中的项目模板创建了一个本地常量来引用对象属性,如下所示。创建常量而不是直接引用属性是否有一些令人信服的理由?

func saveContext () {
var error: NSError? = nil

let managedObjectContext = self.managedObjectContext

if managedObjectContext != nil {
if managedObjectContext.hasChanges && !managedObjectContext.save(&error) {
// error handling, etc...
}
}
}

最佳答案

Is there some compelling reason for creating the constant instead of referring to the property directly?

三个原因:简洁/清晰效率安全

使用临时变量代替属性使代码不那么困惑,更易于阅读。

它还避免了对属性访问器的大量多余调用。

最后,它更安全。该代码检索上下文,然后将其与 nil 进行比较。如果您使用单独的属性访问,您可能每次都返回不同的值。考虑:

if self.managedObjectContext != nil {
if self.managedObjectContext.hasChanges && !self.managedObjectContext.save(&error) {
// error handling, etc...
}
}

此代码可以通过 nil 检查,但 managedObjectContext 属性可能会更改。它不应该,随意更改上下文可能会导致其他问题,但如果您要检查一个值,最好继续使用那个值并且不会引入无意中使用某些其他值的可能性。

关于Swift:为什么使用局部常量而不是对象属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24388413/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com