gpt4 book ai didi

objective-c - 重复协议(protocol)定义警告,但我需要该协议(protocol)的倍数

转载 作者:太空狗 更新时间:2023-10-30 03:49:34 25 4
gpt4 key购买 nike

注意:这类似于 this question但它不一样。我保证。

我有一系列表格 View 调用模态视图来对表格内容进行排序。为此,我在一个 TableView Controller 的头文件中设置了一个简单的协议(protocol),并且效果很好。然后我将此协议(protocol)复制到我的其他 TableView Controller 并收到此警告:

Duplicate protocol definition of 'ModalViewDelegate' is ignored

现在我意识到它只是一个警告,但我宁愿每次编译都看不到它。为了消除警告,我导入了最初定义协议(protocol)的头文件。再一次,我并不完全满意。将头文件导入每个 TableView 似乎很草率,这样我就可以在没有警告的情况下使用该协议(protocol)。

如果你已经读到这里,我感谢你。我的问题是‘为什么会这样?有没有更好的方法在仍然使用相同的协议(protocol)的同时摆脱这个警告?”

最佳答案

Is there a better way of getting rid of this warning while still using the same protocol?

编译器需要了解协议(protocol),以便您引用它。有两种方法可以做到这一点:将声明协议(protocol)的 header 导入到您正在使用它的文件中,或者在这些文件中对协议(protocol)进行前向声明:@protocol MyProtocol; .第二个实际上仅在协议(protocol)需要相互引用时才有用(以避免循环导入);如果一个类需要采用协议(protocol),它需要看到协议(protocol)中方法的声明,这意味着它需要看到协议(protocol)声明本身,即头。

It seems sloppy to import the header file to every table view just so I can use the protocol without warnings.

这不是马虎,而是事情的运作方式。听起来您可以将协议(protocol)声明放入其自己的 header 中并在需要的地方导入它。

关于objective-c - 重复协议(protocol)定义警告,但我需要该协议(protocol)的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10001293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com