繁体   English   中英

Swift 类名和方法名相同的问题

[英]Swift Class name & method name same issue

class ClassA {

}

class ClassB {

    func ClassA() -> Bool {
        return true
    }

    var test = ClassA()
}

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

那么我们如何在 classB 中从 classA 创建一个实例呢? 目前我在classB里面。 这里的变量 test 默认取函数名,而不是类名。

假设你不能修改类,你可以将ClassA类嵌入到一个结构体中并在classB调用它,如: StructName.ClassA()

struct Namespace {
    class ClassA { }
}

class ClassB {

    func ClassA() -> Bool {
       return true
    }

    var test = Namespace.ClassA()
}

您可以使用“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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM