Swift 通过以下错误引用类内的协议:类型名称后应为成员名称或构造函数调用

Swift 通过以下错误引用类内的协议:类型名称后应为成员名称或构造函数调用,swift,xcode,class,swift-protocols,Swift,Xcode,Class,Swift Protocols,这是我目前的情况: class FirstViewController: UITableViewController { ... } protocol SharedFunctions { func createEvent(event: Event, text: String) } extension FirstViewController: SharedFunctions { createEvent(event: Event, text: String) {

这是我目前的情况:

class FirstViewController: UITableViewController {
   ...
}

protocol SharedFunctions {
   func createEvent(event: Event, text: String)
}

extension FirstViewController: SharedFunctions {
   createEvent(event: Event, text: String) {
       ...
   }
}

class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
   var sharedFunctions = SharedFunctions? // < Xcode error...

   @IBAction func postChatMessageAction(_ sender: Any) {
       self.sharedFunctions.createEvent(event: event, text: "New Event")
   }
   ...
}
现在我在createEvent函数上得到一个错误

var sharedFunctions = SharedFunctions?.self //Xcode suggestion is adding .self
@IBAction func postChatMessageAction(_ sender: Any) {
   self.sharedFunctions.createEvent(event: event, text: "New Event") // < Xcode error...
}
@iAction func postChatMessageAction(\uSender:Any){
self.sharedFunctions.createEvent(事件:事件,文本:“新事件”)//
错误:“SharedFunctions”类型没有成员“createEvent”

我还尝试了以下操作,但出现了一个错误:

weak var delegate = SharedFunctions? // < Xcode error...
弱var委托=共享函数?//
错误:“弱”只能应用于类和类绑定协议类型,而不能应用于“SharedFunctions?”类型


我要做的是,从第二个ViewController类中,我想触发第一个ViewController类中的函数createEvent()。

您的SharedFunctions声明语法错误。应该是

weak var delegate: SharedFunctions?
试一试

class SecondViewController:UIViewController、UITableViewDataSource、UITableViewDelegate{
//这里需要零钱吗
var sharedFunctions:sharedFunctions?/
首先,
FirstViewController
的扩展名中缺少一个
func
关键字。尝试实现
createEvent(事件:text:)
函数,如下所示:

extension FirstViewController: SharedFunctions {
   func createEvent(event: Event, text: String) {
       ...
   }
}
除此之外,
SecondViewController
中的
sharedFunctions
属性声明是错误的。请尝试以下操作:

class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
   var sharedFunctions: SharedFunctions?

   @IBAction func postChatMessageAction(_ sender: Any) {
       self.sharedFunctions.createEvent(event: event, text: "New Event")
   }
   ...
}

希望这有帮助。

=
更改为
此处
弱var委托=共享函数?
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
   var sharedFunctions: SharedFunctions?

   @IBAction func postChatMessageAction(_ sender: Any) {
       self.sharedFunctions.createEvent(event: event, text: "New Event")
   }
   ...
}