gpt4 book ai didi

iPhone - 为什么有些方法是在 .m 上声明的,而不是在 .h 上声明的?

转载 作者:行者123 更新时间:2023-12-03 19:35:00 25 4
gpt4 key购买 nike

我正在使用 Xcode 的基于导航的应用程序创建一个新文件,我看到 .m 文件包含以下几行:

@interface RootViewController ()
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end

为什么在 .m 上声明而不是在 .h 本身上声明?

在头文件中只放一行(下面这一行)不是更容易吗?

- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;

我在其他代码中见过这种做法。我仍在学习 Objective-C,我想知道这是为什么。

谢谢。

最佳答案

通过不将其放入类的公共(public)接口(interface)中,您实质上将方法设为私有(private)(如果他们确实想要的话,它不会阻止您类之外的人调用它,但至少它会导致编译器警告)。

@interface RootViewController ()
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
@end

是一个类扩展(= 匿名类别;“正常”类别在 () 之间有一个类别名称)。它的目的是声明私有(private)方法(否则,如果您尝试在 .m 文件中调用 configureCell:atIndexPath:实现)。

您可以阅读有关类别和类扩展的更多信息 in the developer documentation

关于iPhone - 为什么有些方法是在 .m 上声明的,而不是在 .h 上声明的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432861/

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