可能重复:
objective-c 中的受保护方法
声明私有属性的方法很简单。
您在 .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
当然,我可以使用常规类别而不是扩展名,但这意味着我不能拥有受保护的属性。
所以我该怎么做?