Swift Class name&方法名称相同的问题

时间:2017-02-01 06:58:40

标签: ios swift

class ClassA {

}

class ClassB {

    func ClassA() -> Bool {
        return true
    }

    var test = ClassA()
}

假设我需要从 ClassA 创建一个对象。但是在当前的类中有一个具有相同类名的方法。这是 ClassA

那么我们怎么能在classB中从classA创建一个实例呢?目前我在classB里面。这里变量测试默认采用函数名,而不是类名。

2 个答案:

答案 0 :(得分:0)

您可以使用“self”关键字调用方法(当然,从另一个函数调用ClassA函数)。但是你不能在ClassB中创建ClassA实例。尝试在当前约定中重构函数名称。作为解决方法使用Thedore的答案。

class ClassA {

}

class ClassB {

    func ClassA() -> Bool {
        return true
    }

    func something() -> Bool {
        let a = self.ClassA()
        return a

    }

}

var b = ClassB()
var c = b.ClassA()
var d = b.something()

答案 1 :(得分:0)

假设您无法修改类,可以将ClassA类嵌入到结构中,并在classB中调用它,如:StructName.ClassA()

struct Namespace {
    class ClassA { }
}

class ClassB {

    func ClassA() -> Bool {
       return true
    }

    var test = Namespace.ClassA()
}