gpt4 book ai didi

objective-c - @interface 中的实例变量; header 与实现

转载 作者:太空狗 更新时间:2023-10-30 03:21:40 24 4
gpt4 key购买 nike

在 header 中声明私有(private)实例变量与在实现中声明它有什么区别吗?

在 TestObj.h 中

@interface TestObj : NSObject
{
int test;
}
@end

对比 TestObj.m

@interface TestObj()
{
int test;
}
@end

两者在我看来都是等价的,在 header 中声明实例变量与在实现中声明实例变量之间是否有任何实际区别,如果不是,哪个是首选?实现文件中的 @interface 似乎只是一种声明私有(private)属性的方式,除此之外它还有其他用途吗?

最佳答案

通常偏好将私有(private)实例变量和属性放在私有(private)类扩展中(在.m 中),而将那些真正属于公共(public)接口(interface)的属性和方法留在公共(public)接口(interface)文件(.h) 中。

它有助于将实现细节与公共(public)接口(interface)隔离开来,并使一切变得更加清晰。它还确保外部类不会无意中更改此类的私有(private)变量。

参见 Class Extensions Extend the Internal Implementation .

关于objective-c - @interface 中的实例变量; header 与实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18616709/

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