gpt4 book ai didi

objective-c - 为什么自动完成在 xcode 中新创建的协议(protocol)头文件中不起作用?

转载 作者:太空狗 更新时间:2023-10-30 03:26:00 24 4
gpt4 key购买 nike

我只是创建了一个协议(protocol)头文件:

文件 -> 新建 -> 文件 -> (Cocoa Touch) Objective-C 协议(protocol) -> 下一步 -> 输入协议(protocol)名称 -> 下一步 -> 选择我的目标 -> 创建

当我尝试在协议(protocol)头文件中创建一个方法列表时。我注意到动态打字不起作用。当我在其他文件中键入“NSStr”时,通常会自动弹出一个类列表,所有类都用颜色标记。为什么它在协议(protocol)头文件中不起作用?

顺便说一句,我尝试将协议(protocol)代码放入现有的类文件中,效果很好。为什么它在单独的文件中不起作用?

一些关键字会起作用,例如“void”。弹出列表将显示。但其他关键字如“NSString”将不会被识别。

我的协议(protocol)是这样的:

#import <Foundation/Foundation.h>

@protocol PanToSwitchViewDelegateProtocol <NSObject>

@end

最佳答案

我刚刚做了实验,我看到了完全一样的东西。我认为问题是编译器不会扫描文件,除非它被导入到被扫描的文件中。

如果您将协议(protocol) header 导入到 .m 文件中并幸运地编译它,您应该开始在 NSString 上获得自动完成功能。

编辑

从我的回答和其他地方的评论可以清楚地看出,jazou2012 受到了误解。

自动完成与模块是否正确无关。出于多种原因,自动完成可能无法找到标识符,即使该标识符已被正确定义。例如,即使导入了 Foundation.h,我也能够在协议(protocol)中使用 NSString 复制 Jazou 的问题。

但是,一旦我将协议(protocol) header 导入 .m 文件,自动完成功能就开始识别 NSString。我的猜测是,自动完成仅在编译器可见时才开始索引文件。

如果你想捕获编译错误,你需要编译代码。如果编译器说“没有错误或警告”,那么无论自动完成说什么,您的代码都没有问题。

关于objective-c - 为什么自动完成在 xcode 中新创建的协议(protocol)头文件中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20740939/

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