我目前正在编写一个NSManagedObject
,并在寻找命名约定的想法。
final class StrokeSample: NSManagedObject {
@NSManaged private var location: String
var _location: CGPoint {
get {
return NSCoder.cgPoint(for: location)
}
set {
location = NSCoder.string(for: newValue)
}
}
}
正如您所看到的,我有一个CGPoint
对象,它作为String
存储到Core Data中。这里的问题是,我应该如何以优雅的方式命名这两个描述完全相同属性的变量?
我已经考虑过:
1.在我的xcdatamodel
对象中,将属性命名为string[PropertyName]
。**优点:**解决了歧义,例如,具有名为rect
的属性,而在数据模型中被描述为String
。此外,在数据模型之外,一切都非常清楚。**缺点:**在每个属性之前编写 string 在模型中看起来很混乱。
1.在我的NSManagedObject
中,在计算属性的名称之前放置一个_
。这是我的示例中突出显示的内容。**优点:**这会使xcdatamodel
保持干净。**缺点:**迫使我在Swift代码中的所有地方使用下划线。🤢
1.在数据模型. Xcode中的属性名前放置_
可以防止这种情况。
我认为第一项是较好的方案,因为混乱只限于一个地方,但如果你对这问题有更好的意见,欢迎你提出,谢谢🙂
1条答案
按热度按时间yyyllmsg1#
约定似乎是,当您想使属性名成为“私有”属性时,在属性名后面加上下划线,因为在数据模型中,属性名必须以字母开头。