objective-c – Cocoa:在头文件中导入和在主文件中导入之间有什么区别?

objective-c – Cocoa:在头文件中导入和在主文件中导入之间有什么区别?,第1张

概述我不知道为什么,但有时我设法修复了一些编译错误,最值得注意的是 error expected specifier-qualifier-list before 'someClass' 将#import“someClass.h”从.h文件移动到.m文件中.这也解决了我遇到的其他一些与标题相关的问题(从我的观点来看神秘). 一些粗略的谷歌搜索已经找到答案“永远不会导入头文件中的标题”,这是建议停止的地方 我不知道为什么,但有时我设法修复了一些编译错误,最值得注意的是

error expected specifIEr-qualifIEr-List before 'someClass'

将#import“someClass.h”从.h文件移动到.m文件中.这也解决了我遇到的其他一些与标题相关的问题(从我的观点来看神秘).

一些粗略的谷歌搜索已经找到答案“永远不会导入头文件中的标题”,这是建议停止的地方.

要么我完全做了这件事,要么我已经从某个地方养成了习惯,但我认为标题是要导入标题的地方.显然不是,但任何人都可以向我解释为什么会这样,以及导入标题的首选方式是什么?

解决方法 除非您继承自您所包含的类,否则不应在标题中包含标题.如果需要将对象包含为接口变量,则应使用@class指令;这将告诉编译器标识符引用一个类.

而是仅在实现文件中导入标头.编译器将知道您的实例变量是指向对象的指针,但在解析标头时它不知道对象的详细信息.它需要知道的是它是一个类.然后,编译器可以在解析实现文件时查看类的方法;此时,它确实需要该类,以验证它是否响应您发送的消息.

更新:我打算更新我的回答,以回应一些后来的问题,但是Rob Napier has a good follow-up.

总结

以上是内存溢出为你收集整理的objective-c – Cocoa:在头文件中导入和在主文件中导入之间有什么区别?全部内容,希望文章能够帮你解决objective-c – Cocoa:在头文件中导入和在主文件中导入之间有什么区别?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1022942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存