【发布时间】:2013-07-30 20:19:51
【问题描述】:
这两者有什么区别:
@interface MyClass ()
{
BOOL newUser;
}
或者
@implementation MyClass
{
BOOL newUser;
}
@end
【问题讨论】:
-
在第二种情况下,即使是实例变量的存在,类的用户也不知道,只有类本身知道。然而,在第一种情况下,无论谁导入带有类声明的标头,都会知道有一些名为 this 和 that 的实例变量,即使它们被声明为
@private、@protected或@package。 -
@H2CO3 第一个是类扩展名(很可能是.m,而不是.h)。
-
@rmaddy 没错(不过,术语不是我的主要观点)。
-
@H2CO3 但关键是,由于第一个是 .m 文件中的类扩展名,因此没有人会导入它,并且 ivar 是私有的。
-
@H2CO3 但我一直在谈论第一种情况,而不是第二种情况。
标签: ios objective-c