这是我的问题。
假设我有一个名为WebServiceBase.h的类。我需要在名为NSString * requestData的类中添加一个iVar。但是我不需要将该iVar添加到头文件中并使其对外部人员可见。 (如果我将其作为类库分发)
另外,我还需要能够访问从WebServiceBase.h扩展的其他类中的requestData iVar。 (这些扩展类是我编写的。不是来自外部人员的)
我尝试在类扩展中声明requestData iVar。但是,扩展类看不到它。
有什么解决办法吗?我需要保护我的数据并使它对外界隐藏。
最佳答案
您可以通过@protected
关键字将ivars定义为受保护的,这意味着您的类和所有子类都可以毫无问题地访问它,但是编译器将不允许其他不从基类继承的类使用它:
@interface Foo : NSObject
{
@protected
NSObject *a;
}
如此简单,并且已经为您提供了Objective-C可以提供的所有安全性。
关于iphone - objective-c -隐藏iVars,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11707495/