Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何从父类调用类扩展中定义的方法_Swift_Class_Extension Methods - Fatal编程技术网

Swift 如何从父类调用类扩展中定义的方法

Swift 如何从父类调用类扩展中定义的方法,swift,class,extension-methods,Swift,Class,Extension Methods,在Swift中,从父类调用类扩展方法是否是一种良好的做法/可能?我收到一个编译错误,说ParentClass没有成员。它在扩展中看不到函数吗 class ParentClass: NSObject { public func doingManyThings() { doSomething() // Error: Value of type ParentClass has no member 'doSomething' } } 在另一个swift文件中 exten

在Swift中,从父类调用类扩展方法是否是一种良好的做法/可能?我收到一个编译错误,说ParentClass没有成员。它在扩展中看不到函数吗

class ParentClass: NSObject {   

   public func doingManyThings() {
      doSomething() // Error: Value of type ParentClass has no member 'doSomething'
   }
}
在另一个swift文件中

extension ParentClass {
   func doSomething {
     print("this will do something")
   }
}
类B将继承类A方法,即使是通过扩展,
但是A类不会接受B类扩展方法。

当然有可能。。。关于“良好实践”,我认为这是可以解释的。顺便说一句,
ParentClass
的使用在您的问题中有点含糊不清,因为您的示例中没有涉及继承。冒号是用来做什么的?问题是什么?这就是你的代码不能编译的原因吗?是冒号。否则就没问题了。谢谢你的评论。缺少包含扩展名的swift文件的目标成员身份。如果不解释代码以及它如何回答问题,此答案就不是很有用。谢谢Itamar-我收到一个编译错误-请参阅上面的编辑扩展名中的doSomething方法缺少“()”。不需要NSObject继承。
class A {
    func aMethod() {
        extensionMethod()
    }
}

class B: A {
    func bMethod() {
        extensionMethod()
    }
}

extension A {
    func extensionMethod() {
        print("totally possible")
    }
}