从外部类访问私有variables – iOS

我有一个类中的私有variables,我想从外部类访问该variables。 有没有办法我可以做到这一点?

根据定义,私有实例variables是私有的。 你不能从外部访问它们。 如果您是该类的作者,则应该为该variables提供访问器方法。 如果你不是,你应该避免访问variables。

但是,有办法规避这个限制。

您可以在第一个类上创build一个类别,并为该实例variables添加一个访问器方法。

或者你可以使用键值编码来访问variables。

  [object valueForKey:@“variable_name”]; 

私人定义意味着它不能被外部类访问。 访问私有数据的唯一方法是通过接口中提供的访问方法。

在Objective-C中,您可以创build所谓的类别。 这些是基本上可以用来扩展类的function的一组方法。 我不是很积极地接触在外部类中声明的私有成员(那些没有完全实现的成员),但是我能够为自己的类写一个访问私有成员的类。

#import "OtherClass.h" @interface OtherClass(RandomAccessor) -(int) getMyVar; @end @implementation OtherClass(RandomAccessor) -(int) getMyVar { return self->myPrivateVar; } @end 

但是,我并不推荐这样做,因为开发人员通常会将数据私有化。

你可以创build你自己的get / set方法…或者你可以使用Objective-C标准,把variables声明为.h文件中的一个属性,然后把它合成到.m文件中。记住,如果其他类可以看到variables并访问它,那么它不再是一个“私有”variables

testViewController.h

 @interface testViewController : UIViewController { NSString *someString; } @property (nonatomic, retain) NSString *someString; @end 

testViewController.m

 #import testViewController.h @interface testViewController @synthesize someString=_someString; @end