2011-04-07 59 views
-1

我有一个理论问题:但是每个方法和IbAction都必须在.h中声明???因为如果我在.m中写入方法(void)而不是.h,那么项目没有问题。客观c:方法关系.h和.m

回答

1

如果你想访问从另一个类的函数你说的.h头文件要导入,使编译器了解在哪里找到这些功能以及如何翻译它们。

+1

这实际上是完全错误的,虽然可以理解,所以没有投票权。 Objective-C使用动态分派,因此重要的是对象知道如何在运行时响应该方法。您需要在头文件中放置Objective-C方法的唯一原因是阻止编译器认为您已经忘记定义它们并禁止警告(除非您声明方法,否则它将假定所有参数均为对象)。 – JeremyP 2011-04-07 10:34:27

1

这是如何实施你的课程的指导原则。

用“C”来表达它。您可以在.h(头文件)文件中定义您的原型,并在.c中执行实现,在这种情况下执行.m文件。

这两种方法都可以工作,只是没有在.M重新定义它...

0

不,他们并不需要在标题中声明。

当尝试按类别或扩展名创建方法“private”时,通常会忽略头中的声明。无论这或多或少是危险的,而不是将标题中的标题声明为私人标识是有争议的,并且取决于使用您的对象的人。

在单独的头文件中声明与基类型不相关的类别也很好。

0

是的,没有必要在.h中声明方法,因为在目标c中任何消息都可以传递给任何对象。这就是为什么它不会给出任何错误,只是警告“ABClass可能不会响应messageABC”。对于像我这样只讨厌警告的人在.h中宣布它。这是一个很好的做法,因为不在头文件中声明它更容易崩溃,因为你只是忽略了警告,实例无法处理该消息,并且你的应用程序会说“你好Crash先生”。和“Bye-Bye”给开发者。