我正在使用swift 5.1,并且不知道swift版本是否无法实现。

我在swiftA.swift和SwiftB.swift中创建了类,我想在SwiftA.swift中执行方法。

swiftA.swift:

class MySchoolA : CaculateADelegate {
func executeCaculate(_ MyClass,caculateTheNumber index:Int) -> Int {
    return 80
 }
}


并迅速

protocol CaculateADelegate: AnyObject {
    func executeCaculate(_ MyClass,caculateTheNumber index:Int) -> Int
}

class MyClassB {
    weak var delegate:CaculateADelegate?
    init(){
        let num = delegate?.executeCaculate(self,0)
    }
}


变量num始终为nil,哪里出错了?

谢谢。

最佳答案

您没有在swiftA.swift中引用委托给self。
在swiftA.swift类中,您当时拥有swift类的实例
swiftB.delegate =自我
并在swiftA类中实现协议

关于ios - 无法通过委托(delegate)执行另一个类的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59264697/

10-09 10:16