【发布时间】:2012-11-18 05:52:02
【问题描述】:
声明私有属性的方式很简单。
您在 .m 文件中声明的扩展名中声明。
假设我想声明受保护的属性并从类和子类中访问它。
这是我尝试过的:
//
// BGGoogleMap+protected.h
//
//
#import "BGGoogleMap.h"
@interface BGGoogleMap ()
@property (strong,nonatomic) NSString * protectedHello;
@end
那个是编译。然后我补充说:
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap ()
-(NSString *) protectedHello
{
return _
}
@end
问题开始了。我似乎无法在原始 .m 文件之外实现类扩展。 Xcode 将要求该括号内的内容。
如果我这样做
#import "BGGoogleMap+protected.h"
@implementation BGGoogleMap (protected)
-(NSString *) protectedHello
{
return _
}
@end
我无法访问 BGGoogleMap+protected.h 中声明的 _protectedHello 的 ivar
当然我可以使用常规类别而不是扩展名,但这意味着我不能拥有受保护的属性。
那我该怎么办?
【问题讨论】:
-
Rob 写了一个在其他问题上没有的很棒的答案。这个问题也是关于模拟而不是实际的受保护变量,这是不可能在objective-c中实现的
标签: objective-c xcode4.5 protected