本文介绍了演示者功能永远不会在swift 3上读取的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在调用我的演示者正在执行的协议中列出的演示者功能,但是每当我调用它时,它就永远不会出现在内部,如何初始化演示者,以便可以调用界面函数?
I'm calling my presenter functon that is listed in a protocol that my presenter is implementing but whenever i call it it never goes inside,how do i initilize my presenter so i can call the interface funcion ?
这是我的视图控制器:
import UIKit
class FirstScreenViewController: UIViewController, MainViewProtocol {
var myPresenter: MainPresenterProtocol?
func outputPresenterFunction() {
print (myPresenter?.presenterProtocolFuncTwo(numOne: 2, numTwo: 4, sucssesMessage: "Made it ?", failMessage: "failed :(" ) ?? "Default landed")
}
}
我的演示者中有:
import Foundation
class MainPresenter: MainPresenterProtocol {
var screenViewController: MainViewProtocol?
func presenterProtocolFuncTwo(numOne: Int, numTwo: Int, sucssesMessage: String, failMessage: String) -> String {
print("function is called")
return "presenter function is called sussfuly"
}
}
和我的协议本身:
protocol MainViewProtocol {
func showSmallHeadline(textToShow: String)
func showHeadline(textToShow: String)
}
protocol MainPresenterProtocol {
static func presenterProtocolFuncOne()
func presenterProtocolFuncTwo(numOne: Int, numTwo: Int, sucssesMessage: String, failMessage: String) -> String
func presenterProtocolFucThree () -> Bool
}
每当我调用presenterProtocolFuncTwo时,我都会得到默认值,并且不会进入演示者的函数中
whenever i call the presenterProtocolFuncTwo, i get my default value and it doens't go inside the function in my presenter
推荐答案
您应该使用myPresenter
和screenViewController
属性来使用它们.
You should myPresenter
and screenViewController
properties to work with them.
protocol MainViewProtocol: class { ... }
class FirstScreenViewController: UIViewController, MainViewProtocol {
var myPresenter: MainPresenterProtocol?
override func viewDidLoad() {
super.viewDidLoad()
myPresenter = MainPresenter(controller: self)
}
}
class MainPresenter: MainPresenterProtocol {
weak var screenViewController: MainViewProtocol?
init(controller: MainViewProtocol) {
screenViewController = controller
}
}
这篇关于演示者功能永远不会在swift 3上读取的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!