gpt4 book ai didi

objective-c - *.m 文件中的@interface 关键字

转载 作者:太空狗 更新时间:2023-10-30 03:47:45 25 4
gpt4 key购买 nike

我只是想知道:

@interface AppDelegate : NSObject <NSApplicationDelegate>
@property ...
@end

在 *.h 文件中和:

@interface AppDelegate()
@property ...
@end

@implementation AppDelegate

在 *.m 文件中。

我什么时候需要首选第一个版本,什么时候使用第二个版本会更好?

最佳答案

任何可以放在 .h 文件中的东西都可以放在 .m 文件中。导入的 .h 的内容在编译的早期直接复制到 .m 中,因此不存在基于语句放置位置的句法差异。

但是您会注意到

之间的语法差异
@interface AppDelegate : NSObject <NSApplicationDelegate>

@interface AppDelegate()

第二种形式是已描述界面的扩展,而不是新的(且有冲突的)版本。它被放置在 .m 中的事实(这不是必需的——它可以被放置在 .h 中而不会引发错误)意味着任何其他导入 .h 的模块都不会“看到”它,使其成为“私有(private)的” "(就像 Objective-C 中的任何东西都是私有(private)的一样)。

关于objective-c - *.m 文件中的@interface 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25044918/

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