Objective-C:访问继承类中的私有属性
Posted
技术标签:
【中文标题】Objective-C:访问继承类中的私有属性【英文标题】:Objective-C: access private propertys in a inherited class 【发布时间】:2012-01-05 04:09:53 【问题描述】:我正在尝试访问继承类的私有属性。苹果给我的命名约定有可能吗?
标题:
#import <Foundation/Foundation.h>
@interface FooBar : NSObject
-(void)doSomeThingWithThisNumber:(NSInteger)aNumber;
@end
实施:
#import "FooBar.h"
@interface FooBar()
@property NSInteger myPrivateFoo;
@end
@implementation FooBar
@synthesize myPrivateFoo = _myPrivateFoo;
-(void)doSomeThingWithThisNumber:(NSInteger)aNumber
_myPrivateFoo = aNumber;
@end
如果我将这个类继承给一个新的类,我将无法访问_myPrivateFoo
。除了头文件中的声明,还有其他方法吗?
【问题讨论】:
【参考方案1】:在子类的实现中,只需将私有类别声明放在主@interface 之前。这将防止编译错误,因为编译器将知道该属性存在。这就是我所说的“私有类别声明”:
@interface FooBar()
@property NSInteger myPrivateFoo;
@end
【讨论】:
以上是关于Objective-C:访问继承类中的私有属性的主要内容,如果未能解决你的问题,请参考以下文章