`
blessdyb
  • 浏览: 236627 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

What's the deference between @class and #import in Objective-C

阅读更多

The @class directive minimizes the amount of code seen by the compiler and linker, and is therefore the simplest way to give a forward declaration of a class name. Being simple, it avoids potential problems that may come with importing files that import still other files. For example, if one class declares a statically typed instance variable of another class, and their two interface files import each other, neither class may compile correctly.

 

 

It is to my understanding that one should use a forward-class declaration in the event ClassA needs to include a ClassB header, and ClassB needs to include a ClassA header to avoid any circular inclusions. I also understand that an #import it a simple ifndef so that an include only happens.

My inquiry is this. When does one use #import and when does one use @class? Sometimes if I use a @class declaration, I see a common compiler warning such as the following:

warning: receiver 'FooController' is a forward class and corresponding @interface may not exist.

Would really love to understand this, versus just removing the @class forward-declaration and throwing an #import in to silence the warnings the compiler is giving me.

 

 

So, be sure that if you use @class in .h files to import class, you must reminde that you add the #import to the Corresponding .m files.

分享到:
评论

相关推荐

    归一化8点算法经典论文:In Defence of the 8-point Algoritm

    标题和描述提到的文章是《归一化8点算法经典论文:In Defence of the 8-point Algorithm》,该文作者为Richard I. Hartley,发表于GE-Corporate Research and Development,位于纽约州斯克内克塔迪市。文章的主旨是为...

    英语写作背诵句式

    > What deference people in authority do command is based on their actual powers rather than on their age, wisdom, or dignity. - **解析**:这句话表达了权威人士获得尊重的原因更多是基于他们的实际权力而...

    英语写作句式

    - "What deference people in authority do command is based on their actual powers rather than on their age, wisdom, or dignity." - **解析:** 这句话通过对比权威人士获得尊重的原因,指出他们的权力基础...

    Tower-Deference-Game:这是一个使用Java语言并带有LWJGL库的游戏项目

    塔式游戏这是一个使用Java语言和LWJGL库的游戏项目。 LWJGL代表轻量级Java游戏库。 注意:此游戏非常不完整,现在只有一个模板。... 如果有人重新分配这些资源,我不承担任何责任,我强烈建议您不要。...

    iOS9人机界面指南(一):UI设计基础

    在设计iOS应用程序时,需要遵循三大核心原则:遵从(Deference)、清晰(Clarity)和深度(Depth)。这些原则不仅指导UI设计的方向,也确保应用能够为用户提供最佳体验。 ##### 1.1.1 设计跟随内容 设计应当以内容...

    iOS10人机指南译文版

    2. **遵从(Deference)** - 动效和平面设计应当辅助用户更好地理解和与内容交互,而非成为干扰因素。 - 当内容占据整个屏幕时,可以通过半透明或模糊效果暗示更多的信息存在。 - 减少使用边框、渐变和阴影等复杂...

    Roblox All Star Tower Defense Wallpapers-crx插件

    português (Brasil),português (Portugal),română,slovenský,slovenščina,suomi,svenska,čeština,Ελληνικά,Српски,български,русский,українська,עברית,فا...

    李开复给中国学生的七卦信

    聆听开复的教导,MAKE A DEFERENCE!

    英语常见单词同义词.doc

    1. **Unconcerned** 和 **indifferent**:这两个词都表示“不关心的”,在写作中可以用来表达对某事漠不关心的态度。 2. **As/so far as sb be concerned**:这句型用于表达“就某人而言”的意思,例如,“As far as...

    发明领域-研究论文

    联邦法院不能忽视、承担或即兴发挥专利局定期有效行使的一项普遍重要的行政权力:技术分类。 这种机构与法院的不对称已经持续了几十年,但现在由于两个相关原因而变得难以控制。 首先,最高法院的指导、专利改革立法...

    IOS10人机界面设计指南.pdf

    首先,设计原则是iOS系统的核心理念,主要包括三个核心概念:清晰(Clarity)、遵从(Deference)和深度(Depth)。清晰要求设计简洁明了,文字清晰易读,图标直观,所有的设计元素都以功能为导向,以增强用户体验。...

    海水淡化与管道胶带:(Dis)保护供水的激励措施-研究论文

    供水商必须越来越多地转向再利用方案、集水、绿色基础设施、海水淡化、含水层储存和恢复以及风险缓解策略(例如干旱年方案),因为他们面临着不断增长的需求和传统供水的减少。 当公用事业转向非正统供应时,州公用...

    iOS 9人机界面指南(一):UI设计基础

    文档开篇即强调了iOS设计的三大原则,即“遵从(Deference)”、“清晰(Clarity)”与“深度(Depth)”。 首先,“遵从”原则提出UI设计应辅助用户更好理解内容与交互,避免分散用户对内容的注意力。在这一部分,...

Global site tag (gtag.js) - Google Analytics