ios - 代理属性神秘重置
问题描述
我会保持简短
问题:
我关闭视图控制器并在传入控制器上调用一个可以正常触发的函数。该值甚至可以打印到控制台。我将值分配给局部变量,它可以打印并正常工作,直到我开始更新保存该值的 struct 对象上的其他属性。事实上,该值已从它存储的所有对象中完全删除。该代码仅触及该值一次,因此我不确定发生了什么。
这就是我解雇的方式:
var controller = AddVendersTableViewController()
override func viewDidLoad() {
...
//MARK: Temp
controller.delegate = self
}
@objc func returnToOriginatingController(){
dismiss(animated: true) { [weak self] in
self?.controller.enabledStatusChecker()
print("This is the initiated view controller — \(String(describing: self?.controller))")
}
submitButton.isHidden = true
}
这是新控制器上的接收端:
var delegate : CompanyAddressDelegate? = nil
func enabledStatusChecker(){
if delegate != nil {
guard let string = delegate?.getCompanyAddress() else {return}
let localString = string
localVenderObject?.address = localString
print(localVenderObject ?? "this is not working")
print("\(self) — This is the current VC ")
}
print(localVenderObject ?? "No Value in enabledStatus")
if localVenderObject?.name != nil && localVenderObject?.phone != nil && localVenderObject?.email != nil && localVenderObject?.website != nil && localVenderObject?.address != nil {
submitButton.isEnabled = true
submitButton.layer.backgroundColor = UIColor.systemBlue.cgColor // temp color
}
}
解决方案
推荐阅读
- c++ - 初始化客户类型对象向量时出现复制构造函数错误
- ios - 使用 OpenCV 从图像中提取颜色
- python - 如何关联 Django Admin 中的字段?
- python - 在 Flask 上使用请求上下文测试 json 响应
- asp.net-core - 实体框架核心 GetOrAdd 方法
- python - Python + Selenium 选择问题
- python - 如果找到另一个字符串,则打印字符串之间的行
- android - 禁用虚拟键盘 - 如何只允许默认键盘?
- ios - 从 Firebase Swift 解析数据 JSON
- postgresql - PostgreSQL 负整数溢出