Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从其他Swift类调用函数_Swift - Fatal编程技术网

从其他Swift类调用函数

从其他Swift类调用函数,swift,Swift,我正在尝试访问从Class1.swift到Class2.swift的函数 这是我在Class1.swift中的函数: class ExampleFormViewController: FormViewController { ...... required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) load_data() self.

我正在尝试访问从Class1.swift到Class2.swift的函数

这是我在Class1.swift中的函数:

    class ExampleFormViewController: FormViewController {
......
    required init(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            load_data()
            self.loadForm()
        }
    func get_facility(company: Int!, territory: Int!){

    }
    }
下面是我在课堂上对它的称呼。斯威夫特:

ExampleFormViewController().get_facility(ExampleFormViewController().val_company[row], territory: ExampleFormViewController().val_territory[row])

我在这行中得到的错误是:
调用中缺少参数“coder”的参数

类的
init
方法需要一个coder参数。您需要一个NSCoder传入,输入一个名为
theCoder
的变量,然后将调用更改为:

ExampleFormViewController().get_facility(ExampleFormViewController(theCoder).val_company[row], territory: ExampleFormViewController(theCoder).val_territory[row])

如何声明编码器?如果您不打算使用编码器,则可能不应该使用带有编码器的init方法作为参数,请尝试`required init(){`和
super.init()的第一行
您没有使用NSCoder做任何事情吗?这是我正在使用的库所需要的。您不应该像那样动态创建视图控制器。可能Class2也是一个VC。这两个VC是什么,它们之间有什么关系?Class2中的代码在哪里(例如prepareForSegue?)
公共类FormPickerCell:FormValueCell、UIPickerViewDeleteGate、UIPickerViewDataSource{
这是一个自定义选取器类,而不是视图控制器,所以我猜
ExampleFormViewController
是当前的VC,并且您正在显示一个自定义选取器。选取器需要一个对VC的引用来调用此方法,或者如果该方法不需要任何实例变量,则该方法可以是静态的。对不起,我对VC非常陌生我是怎么做到的?我已经消除了错误,但是为什么我的数组计数是0?