gpt4 book ai didi

ios - Swift 中未调用协议(protocol)实现方法

转载 作者:行者123 更新时间:2023-11-29 05:28:38 27 4
gpt4 key购买 nike

我使用的是 Xcode 10.3。我有哪个方法没有调用的协议(protocol)。怎么了?

我的第一个带有协议(protocol)的 View Controller :

protocol MyProtocol: class {
func doGetUpdateInfo(valu1:String,value2:String);
}

class Class_A : UIViewController{
weak var myprotocolDelegate:MyProtocol? = nil;

override func viewDidLoad() {
super.viewDidLoad()

myprotocolDelegate?.doGetUpdateInfo(account_no:value1, account_title: value2)
}
}

我的第二个 View Controller

class Class_B: UIViewController,UpdateBeneficiaryProtocol {
var class_a = Class_A()

override func viewDidLoad() {
super.viewDidLoad()
class_a.myprotocolDelegate = self;
}

func doGetUpdateInfo(value1: String, value2: String) {
print("not calling****")
}
}

这有什么问题吗?

最佳答案

请看下面的例子。您正在为 A 创建一个新类,但因此它不会被调用。您需要为当前类(class)提供引用

protocol MyProtocol: class {
func doGetUpdateInfo(valu1:String,value2:String);
}

class Class_A : UIViewController{
weak var myprotocolDelegate:MyProtocol? = nil;

override func viewDidLoad() {
super.viewDidLoad()

myprotocolDelegate?.doGetUpdateInfo(account_no:value1, account_title: value2)
}
func navigateToClassB() {
let classb = Class_B()
classb.class_a = self
self.navigationController?.pushViewcontroller(classb, animated:true)
}
}

b 类应该是

class Class_B: UIViewController,UpdateBeneficiaryProtocol {
var class_a : Class_A?

override func viewDidLoad() {
super.viewDidLoad()
class_a.myprotocolDelegate = self;
}

func doGetUpdateInfo(value1: String, value2: String) {
print("not calling****")
}
}

按照方法navigateToClassB中的显示推送 Controller Class_b。如果您在此处仍然遇到问题评论,我会为您提供帮助。

关于ios - Swift 中未调用协议(protocol)实现方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57900068/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com