gpt4 book ai didi

iphone - 在实现文件中使用类别作为私有(private)方法?

转载 作者:行者123 更新时间:2023-12-01 17:45:46 25 4
gpt4 key购买 nike

例如,我真的不明白在 appDelegate 中写一个“类别”的意义,只是为了添加一个似乎是“私有(private)”的方法。我们为什么要这样做?我真的不明白为什么在实现文件中“隐藏”或“存储”这个私有(private)方法很重要,就像在这个例子中一样:

#import "LetsMakeAThreadAppDelegate.h"

@interface LetsMakeAThreadAppDelegate (Static)
- (void)backgroundThinking;
@end

@implementation LetsMakeAThreadAppDelegate
...

你有什么建议吗?
谢谢
保罗

最佳答案

隐藏方法的原因有很多,但这一切(恕我直言)归结为两个词:“编程风格”。

  • 虽然您仍然可以向对象发送调用隐藏方法的消息,但您会收到一个警告,指出该对象可能无法理解它。这可以用来提醒您正在调用一个从未打算从另一个对象调用的方法。
  • 隐藏“主力”方法还增加了代码完成建议列表的整洁度,从而更容易快速找到正确的方法。
  • 如果您在团队中工作或打算共享您正在编写的代码,则隐藏除与您的类交互所需的方法之外的所有方法可能会显着改善工作条件。虽然您可能不想隐藏实际代码,但它有助于防止队友使用方法,如果脱离上下文使用其结果未定义。这样,队友只需要了解你的类的接口(interface),而不是它的内部就可以使用它。
  • 最后但并非最不重要的一点是,我发现在适当的时候花时间隐藏方法也有助于(我)减少我编写的意大利面条代码的数量,因为它迫使我重新考虑——这种方法实际上做了什么?相同的功能在其他地方是否有用,我是否应该将它的一些代码包装到一个单独的实用程序类中以便更容易重用它?

  • 当然,如果您非常自律并且在没有认真规划阶段的情况下不倾向于进行试验/编码,那么这些都可能与您无关。

    关于iphone - 在实现文件中使用类别作为私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6649264/

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