gpt4 book ai didi

objective-c - 如何自动验证在 xcode 中声明的所有方法

转载 作者:行者123 更新时间:2023-12-04 05:40:43 24 4
gpt4 key购买 nike

我正在 Xcode 中使用 Objective-C。我想知道是否有任何机制来证明您的代码以确保在 .h 文件或私有(private) @interface 方法中声明所有函数和方法?

为了澄清,我将在编码切线上,并将直接在我的 viewController.m 文件中编写一个方法

- (Awesome*) generateAwesomeOfMagnitude:(NSFloat)magnitude { ...

我会忘记将标题添加到 viewController.h 文件中。如果这是一个私有(private)方法,没有任何东西通知我我已经这样做了,所以我必须返回并验证所有内容是否在我完成时手动声明。有没有办法自动检查?

注:我希望让编译器发出警告。是否有一个设置真的是我应该问的。

最佳答案

Omar 的回答是正确的——询问对象是否会响应选择器是探测对象以查看它们是否会在运行时响应方法的首选方法。但是,问题是“如何自动验证所有方法都已声明?” (大概在编译时)。答案是,如果不自己写一些东西,你就不能自动做到这一点。

这是使 Objective-C “动态”的部分原因。您不必在任何地方声明方法。这使事情成为可能,例如:

id anUnknownObject = [[NSClassFromString(whoKnowsWhatIllBe) alloc] init];
[anUnknownObject performSelector:@selector(whoKnowsWhatIllDo)];

这意味着,例如,您可以从 Web 服务中获取一个字符串并仅基于该字符串实例化一个类(当然,该类必须在运行时就在附近才能被实例化,但编译器并不知道)。

这并不意味着您应该以这种方式编程,但它意味着它是可能的,并且与大多数事情一样,有适当的用例,这是语言的一个很大区别。它促进了极端的解耦、多态性和非常有趣的模式。

在 .m 类扩展中声明私有(private)方法通常被认为是最佳实践,但它的值(value)是针对程序员,而不是编译器。一些人(包括一个暂时在公共(public)论坛上匿名的 Objective-C 的主要贡献者)还建议没有必要在一个文件中输入所有方法的名称两次(更少的代码,更少的错误——如果你是第一次看别人的课,那就多滚动一下)。拥有漂亮整洁的公共(public) API 正是 header 的用途。有一个干净的实现很重要,但假设是一旦你在 m 中,无论如何你都在私有(private)领域。滚动。查看方法名称是什么。

关于objective-c - 如何自动验证在 xcode 中声明的所有方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11275671/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com