错误“'ClassName - >() - > ClassName'没有名为'memberName'的成员”是什么意思?

时间:2015-08-21 03:14:43

标签: swift

我想编写一个具有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'

这是什么意思?具体来说:

  1. GraphView -> () -> GraphView部分是什么意思?

  2. 为什么它看不到正上方的graphVisibleSize成员?

  3. 奖金问题:我试图在测试课中复制这个并最终编写一个工作正常的课程 - 但我不明白有什么不同!这是我作为测试写的那个:

    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)
        }
    }
    

    为什么这段代码工作正常,但原始代码给我一个错误?

1 个答案:

答案 0 :(得分:1)

问题是由此行引起的

var graphRect = CGRect {

应该是

var graphRect: CGRect {

与其他var s

一样