我想编写一个具有2个计算属性的类,其中第二个引用第一个。我试过这个:
class GraphView: UIView {
var graphVisibleSize: CGSize {
return CGSize(
width: self.bounds.size.width / 40,
height: self.bounds.size.height / 40)
}
var graphRect = CGRect {
return CGRect(
center: CGPointZero,
size: self.graphVisibleSize)
}
}
但是,这会导致错误。 Xcode在size: self.graphVisibleSize
行上显示错误,并说:
'GraphView -> () -> GraphView' does not have a member named 'graphVisibleSize'
这是什么意思?具体来说:
GraphView -> () -> GraphView
部分是什么意思?
为什么它看不到正上方的graphVisibleSize
成员?
奖金问题:我试图在测试课中复制这个并最终编写一个工作正常的课程 - 但我不明白有什么不同!这是我作为测试写的那个:
func mungeString(str: String) -> String {
var newString = "--asdf--\(str)--qwer--"
return newString
}
class TestClass: UIView {
var baseA: String = "This is a string"
var baseB: String {
return "This is a computed string"
}
var changedA: String {
return self.baseA.lowercaseString
}
var changedB: String {
return mungeString(self.baseB)
}
}
为什么这段代码工作正常,但原始代码给我一个错误?
答案 0 :(得分:1)
问题是由此行引起的
var graphRect = CGRect {
应该是
var graphRect: CGRect {
与其他var
s