gpt4 book ai didi

ios - 导入委托(delegate)协议(protocol)的正确方法

转载 作者:可可西里 更新时间:2023-11-01 06:23:31 25 4
gpt4 key购买 nike

我尝试在我的头文件中导入尽可能少的内容(而不是使用实现文件),对于类我们可以使用@class,但是协议(protocol)呢?如果我尝试使用@protocol 声明我将在该 header 中使用的协议(protocol),我会收到一条警告“找不到‘...’的协议(protocol)定义”

仅通过导入协议(protocol)声明的 header 来处理这个问题的正确方法是什么? (所以一个 .h 文件导入另一个 .h)

ListViewController.h 示例:

#import <UIKit/UIKit.h>
#import "JTRevealSidebarV2Delegate.h" // is this the best way?

@class List;

@protocol JTRevealSidebarV2Delegate; // this produces a warning.

@interface ListViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, JTRevealSidebarV2Delegate>

最佳答案

您需要#import@protocol 没有给编译器足够的信息来进行类型检查。

(当您声明类型为 List 的属性时,它只需要知道您真正指的是 List 而不是,比如说 Lisp .指向任何对象的指针都是相同大小的。另一方面,协议(protocol)包含一个类需要做的事情的列表。它需要知道什么是“事情”才能做任何有用的事情。)

关于ios - 导入委托(delegate)协议(protocol)的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14337109/

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