Ios 如何在一个ViewController中创建和实现多协议?

Ios 如何在一个ViewController中创建和实现多协议?,ios,swift,xcode,swift-protocols,Ios,Swift,Xcode,Swift Protocols,我想创建一个具有不同活动的协议。我的参考是Java Android上的一个接口,我们可以创建一个变量作为接口,然后像在类中实现一样进行初始化。那么,swift代码上的接口等效于什么呢 //Android Interface private OnValueChanged joinDay, birthDay; //initialize joinDay = new OnValueChanged(value -> { //somecode }); birthday = new OnValue

我想创建一个具有不同活动的协议。我的参考是Java Android上的一个接口,我们可以创建一个变量作为接口,然后像在类中实现一样进行初始化。那么,swift代码上的接口等效于什么呢


//Android Interface
private OnValueChanged joinDay, birthDay;

//initialize
joinDay = new OnValueChanged(value -> {
//somecode
});

birthday = new OnValueChanged(value -> {
//somecode
});


interface OnValueChanged{
   void didChanged(Date value)
}

//END OF ANDROID INTERFACE








//SWIFT PROTOCOL

class myClass : OnValueChanged{


func didChanged(Int value){
//somecode
}

}

protocol OnValueChanged{
    func didChanged(Int value)
}

//END OF SWIFT PROTOCOL
我想要的是创建一个变量或类似的东西,它可以为同一个类实现不同的代码,就像在Android端一样

用swift怎么做


谢谢

您不需要在Swift中使用单独的类型。您的Java接口可以用Swift中的闭包表示。具体来说,它是
(Int)->Void
类型的闭包

您可以在Swift中这样声明
joinDay
birth

var joinDay: ((Int) -> Void)?
var birthday: ((Int) -> Void)?
要分配“实施”,请执行以下操作:

在Swift中调用joinDay.didChanged(someValue)的等效方法是:

joinDay?(someValue)

有关如何使用闭包的更多信息,请参阅Swift指南中的。

在Swift中,不需要单独的闭包类型。您的Java接口可以用Swift中的闭包表示。具体来说,它是
(Int)->Void
类型的闭包

您可以在Swift中这样声明
joinDay
birth

var joinDay: ((Int) -> Void)?
var birthday: ((Int) -> Void)?
要分配“实施”,请执行以下操作:

在Swift中调用joinDay.didChanged(someValue)的等效方法是:

joinDay?(someValue)
有关如何使用闭包的更多信息,请参阅Swift指南中的。

可能重复的可能重复的