从外部类访问私有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