class FirstViewController : UiViewController {
example("First Value","Second Value")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class SecondViewController : UiViewController {
example("Random String","Random Value String")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class ThirdViewController : UiViewController {
example("Dynamic String","Dynamic Value Type")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
class FourthViewController : UiViewController {
example("Complicated String","Complicated String Variable")
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
}
在上面的代码中,我编写了该函数,该函数作为该特定视图控制器的变量值。
因为它是在各种视图控制器中重复的相同代码。我试图将其作为单个函数example()
写入结构或类文件中,然后在其他viewcontroller中调用它。
旧方法遵循UIViewController扩展文件。有什么最佳方法可以实现吗?
extension UIViewController {
func example(_ firstParameter: String, _ secondParameter: String) {
var one = self.ValueOne[0].first
var two = self.ValueTwo[0].second
var three = ShareClass.Variable.value
var four = keychain.get('name')
var five = self.variableNameFive
var six = firstParameter
var seven = secondParameter
}
或者如Vipin所说,您可以创建一个自定义类。
class CustomClass: UIViewController { func example(_ firstParameter: String, _ secondParameter: String) { var one = self.ValueOne[0].first var two = self.ValueTwo[0].second var three = ShareClass.Variable.value var four = keychain.get('name') var five = self.variableNameFive var six = firstParameter var seven = secondParameter } }
然后,您可以像这样使用ViewController:
class CustomViewController: CustomClass { //If you want to add VC specific actions to this method, you can override it override func example(_ firstParameter: String, _ secondParameter: String) { super.example(firstParameter, secondParameter) print("something more just for this VC") } override func viewDidLoad() { super.viewDidLoad() example("First Param", "Second param") } }