Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >对类内协议的引用通过以下错误:预期成员名称或类型名称后面的构造函数调用

对类内协议的引用通过以下错误:预期成员名称或类型名称后面的构造函数调用
EN

Stack Overflow用户
提问于 2019-09-19 01:58:44
回答 3查看 318关注 0票数 0

这就是我的现状:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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")
   }
   ...
}

错误:类型名称后面的预期成员名称或构造函数调用

当我更改我的代码时,正如Xcode所暗示的那样,错误已经消失,但是我得到了createEvent函数上的一个错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var sharedFunctions = SharedFunctions?.self //Xcode suggestion is adding .self

现在我得到了一个关于createEvent函数的错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@IBAction func postChatMessageAction(_ sender: Any) {
   self.sharedFunctions.createEvent(event: event, text: "New Event") // < Xcode error...
}

错误:键入“SharedFunctions?”没有成员“createEvent”

我还尝试了以下错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
weak var delegate = SharedFunctions? // < Xcode error...

错误:“弱”只能应用于类和类绑定的协议类型,而不是“SharedFunctions?.Type”。

我想要做的是,从我的SecondViewController类中触发createEvent()函数,这是我的FirstViewController类中的函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-19 02:03:20

试一试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

   //Need change here
   var sharedFunctions : SharedFunctions? // < Xcode error...

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

Stack Overflow用户

发布于 2019-09-19 02:02:21

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
weak var delegate: SharedFunctions?
票数 1
EN

Stack Overflow用户

发布于 2019-09-19 02:24:03

首先,在func的扩展中缺少一个FirstViewController关键字。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
extension FirstViewController: SharedFunctions {
   func createEvent(event: Event, text: String) {
       ...
   }
}

除此之外,sharedFunctions属性在SecondViewController中的声明是错误的。尝试以下几点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class SecondViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
   var sharedFunctions: SharedFunctions?

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

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58008450

复制
相关文章
Java 反射获取成员变量名称
使用 Sql2o 方法读取数据库的时候,发现表名类似,但是有一些差别,如果使用 select * 方式查询,需要针对对象声明多个内容,但是实际上用的都是一样的,所以想通过获取成员变量的名称来拼接成 select 后面的内容,经过尝试,发现可以用下面的方法获取:
zucchiniy
2019/10/30
3K0
Class工具类-获取类/成员变量/构造函数
public class ClassUtil { /** * @Author: www.itze.cn * @Date: 2020/9/17 16:08 * @Email: 814565718@qq.com * 打印类的信息,包括类的成员函数,变量 * @param object 该对象所属类的信息 */ public static void printClassMessage(Object object) { //
itze
2022/10/25
9900
Class工具类-获取类/成员变量/构造函数
JSoup/NSoup对CSS类名称中含空格的处理
而在这处理过程中,JSoup是经常常用的库。(Nsoup是Jsoup的.net开发版本)
sparkexpert
2022/05/07
1.1K0
java通过反射获取类中public 方法的返回类型 方法名 参数类型和属性类型及名称
1.java通过反射获取类中public 方法的返回类型 方法名 参数类型的实现方法并打印出来.
程序员小藕
2021/07/08
5.3K0
【Kotlin】函数类型 ( 函数类型 | 带参数名称的参数列表 | 可空函数类型 | 复杂函数类型 | 带接收者函数类型 | 函数类型别名 | 函数类型实例化 | 函数调用 )
函数类型格式 : 圆括号中定义 参数类型列表 , 使用 -> 由参数列表指向返回值类型 , 表示接受 参数类型列表 中的参数 , 返回 返回值类型 的返回值 ;
韩曙亮
2023/03/27
2.8K0
震惊!_类内成员函数可以访问本类对象的私有成员
私有成员是head,有一个成员函数的形参是本类对象(的引用,引不引用不影响结论和原因)
用户10551528
2023/05/09
8640
震惊!_类内成员函数可以访问本类对象的私有成员
Python 获取被调用函数名称,所处模块,被调用代码行
print(sys._getframe().f_code.co_filename)
授客
2019/09/11
2.5K0
Python 获取被调用函数名称,所处模块,被调用代码行
C++类声明和成员函数定义 | 引用多个成员对象
在C++中,一般做法是将类的声明放在指定的头文件中,程序员如果想用该类,只要把有关的头文件包含进来即可,不必在程序中重复书写类的声明,以减少工 作量,提高编程的效率。
小林C语言
2021/01/25
1.9K0
C++类声明和成员函数定义 | 引用多个成员对象
EndNote期刊名称显示错误的解决
  本文介绍EndNote文献管理软件导入文献引用时,期刊名称带有%J前缀从而不能正常显示的解决方法。
疯狂学习GIS
2023/06/26
1.1K0
EndNote期刊名称显示错误的解决
python-函数的对象、函数嵌套、名称
内存存储变量名与变量间的绑定关系的空间(存放变量名的空间),这个空间被称为名称空间。
py3study
2020/01/15
2.3K0
C++类的成员函数 | 成员函数
在C++中,类的成员函数是函数的一种,它有返回值和函数类型,它与一般函数的区别只是:
小林C语言
2021/01/18
1.9K0
C++类的成员函数 | 成员函数
代码质量规则
.NET 代码分析提供旨在提高代码质量的规则。 这些规则分为设计、全球化、性能和安全性等领域。 某些规则特定于 .NET API 用法,而其他规则与通用代码质量相关。
呆呆
2022/01/09
2.2K0
html页面根据js名称调用需要的js
小功能,不过还比较有用,其他的类似功能都一样。 代码 <! DOCTYPE html PUBLIC “ -//W3C//DTD XHTML 1.0 Transitional//EN “ “ http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd “ > < html xmlns = “ http://www.w3.org/1999/xhtml “ > < head > < me
全栈程序员站长
2022/07/05
8.1K0
不报错地调用空指针类的成员函数
  前两个应该都会段错误才对的呀,怎么都运行正常了。其实上述的行为都由this指针左右结果。
Qt君
2019/10/24
1.2K0
【Kotlin】类的初始化 ② ( 主构造函数 | 主构造函数定义临时变量 | 主构造函数中定义成员属性 | 次构造函数 | 构造函数默认参数 )
在 Kotlin 类中 , 可以在 类声明 时 在 类名后 定义 " 主构造函数 " ;
韩曙亮
2023/03/30
4.9K0
C++11模板:如何判断类中是否有指定名称的成员变量?
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/51113805
10km
2019/05/25
4.3K0
类的成员函数(构造、析构、拷贝构造、赋值、运算符重载)的实现
以String类为例实现其成员函数 class String { //友元函数重载运算符 friend ostream& operator<<(ostream &out,String& str); friend istream& operator>>(istream& in, String& str); public: //通用构造函数 String(const char* str) { if(!str) //对m_data加NULL判断 { length = 0; m_da
WindSun
2019/08/30
1.1K0
点击加载更多

相似问题

类型名称后面的预期成员名称或构造函数调用

12

开关错误:预期的成员名称或构造函数调用-出了什么问题?

17

类构造函数引用类的类型成员。

11

C++预期的类成员或基类名称

12

在构造函数中使用类成员名称

31
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文