Objective-c中的.h和.m文件

Objective-c中的.h和.m文件,objective-c,Objective C,我今天在追求知识 我正在为工作编写一些代码,在复习完之后,我的大脑完全放屁了,不记得为什么我们要对objective-c中的.h和.m文件做些什么 我想知道为什么我们要导入文件并在.h文件中声明方法名?(我知道这与处理有关,但记不起细节) 为什么有时我们直接将文件导入到.m文件中,而在某些情况下不导入到.h文件中 当您在.h文件中声明方法时,您这样做是因为您使用的类和/或库不执行您也需要的函数吗 您是否曾经声明过一个在任何库中都不存在的方法或在.m文件中不存在的.h文件 谢谢大家,我希望一切都有

我今天在追求知识

我正在为工作编写一些代码,在复习完之后,我的大脑完全放屁了,不记得为什么我们要对objective-c中的.h和.m文件做些什么

  • 我想知道为什么我们要导入文件并在.h文件中声明方法名?(我知道这与处理有关,但记不起细节)
  • 为什么有时我们直接将文件导入到.m文件中,而在某些情况下不导入到.h文件中
  • 当您在.h文件中声明方法时,您这样做是因为您使用的类和/或库不执行您也需要的函数吗
  • 您是否曾经声明过一个在任何库中都不存在的方法或在.m文件中不存在的.h文件 谢谢大家,我希望一切都有意义

  • 因为.h文件是类的公共接口
  • 因为将导入放入.m文件会使它们成为私有的,并将依赖项排除在.h文件之外(防止过度的依赖项导入和潜在的循环)
  • 你这样做是为了公开声明你提供了那项服务
  • 你不应该,如果它不存在,你就不能使用它(尽管你可以声明你希望存在的东西,并在你真正尝试使用它们之前进行检查)
  • 2人的额外奖金。在.h文件中,您应该尽量减少导入的次数(仅限于超类和您公开实现的任何协议),并对其他所有内容使用
    @class
    。这将依赖关系的影响降至最低

  • 它用于区分类的公共部分和私有部分。.m文件是
    实现
    。它是所有逻辑的所在,所有数据的处理和存储,等等。。。.h文件是该类的
    接口
    。它就像你自己的类的API。它告诉其他类如何使用它以及如何与它交互

  • 在文件中引用类时,可以导入该类。如果在接口中引用某个内容(即属性),则将其导入.h。如果您只在实现中引用它,那么您可以在.m中导入它

  • 在.h中声明的任何方法都存在,以便其他类知道它们可以运行它。i、 它们是公共方法。尝试删除一个声明,然后调用该方法。你会得到警告的

  • 不,这没有道理。除非您在编写程序的过程中,为了测试的目的声明了它


  • 恐怕这些都说不通(呃……这很有道理。现在就回答。根据你对问题2的回答。我想我理解了第一部分。你能用一个例子解释一下关于引用实现的第二部分吗?当我说“在实现中引用它”时我的意思是在.m类中使用它。例如,如果您创建了一个名为
    MyCustomClass
    的自定义类,然后在视图控制器中决定使用它。那么您需要将它导入到.m文件中。感谢您的解释,帮助了我。因此,在.h文件中保留方法有助于保持它们的私有性。@Jadex1如果我是对的,它就是.m文件这是私有的,正如Fogmeister所说:“.m文件就是实现。它是所有逻辑的所在,所有数据的处理和存储,等等”。