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

 小女人hoffix_523 发布于 2023-02-08 15:07

我只是创建一个协议头文件:

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

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

顺便说一句,我尝试将协议代码放在现有的类文件中,这有效.为什么它不能在分隔文件中工作?

一些关键词会起作用,例如"无效".弹出列表将显示.但其他关键词如"NSString"将无法识别.

我的协议是这样的:

#import 

@protocol PanToSwitchViewDelegateProtocol 

@end

JeremyP.. 14

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

如果将协议头导入.m文件并编译运气,则应该开始在NSString上获取自动完成功能.

编辑

从我对答案和其他地方的评论中可以清楚地看出,jazou2012处于一种误解之中.

自动完成无关于模块是否正确无话可说.由于多种原因,自动填充可能无法找到标识符,即使该标识符已正确定义.例如,即使Foundation.h导入了协议,我也可以在协议中复制Jazou的NSString问题.

但是,只要我将协议标头导入.m文件,自动完成就会开始识别NSString.我的猜测是,如果编译器可以看到自动完成只开始索引文件.

如果要捕获编译错误,则需要编译代码.如果编译器说"没有错误或警告",那么无论自动完成的内容如何,​​您的代码都可以.

1 个回答
  • 我只是进行了实验,我看到完全一样的东西.我认为问题是编译器不会扫描文件,除非它被导入到扫描的文件中.

    如果将协议头导入.m文件并编译运气,则应该开始在NSString上获取自动完成功能.

    编辑

    从我对答案和其他地方的评论中可以清楚地看出,jazou2012处于一种误解之中.

    自动完成无关于模块是否正确无话可说.由于多种原因,自动填充可能无法找到标识符,即使该标识符已正确定义.例如,即使Foundation.h导入了协议,我也可以在协议中复制Jazou的NSString问题.

    但是,只要我将协议标头导入.m文件,自动完成就会开始识别NSString.我的猜测是,如果编译器可以看到自动完成只开始索引文件.

    如果要捕获编译错误,则需要编译代码.如果编译器说"没有错误或警告",那么无论自动完成的内容如何,​​您的代码都可以.

    2023-02-08 15:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有