我正在使用iOS Categories来划分我的代码。对于类“aClass”来访问类别文件“aClass + categoryName”中的符号,我必须在“aClass + categoryName.h”中声明这些符号。我希望这些符号只对“aClass”可见。但是,除非编译器的行为不同,否则对于“aClass”对象而言属于私有的符号实际上对所有对象都是公共的。我的理解是否正确?如果是这样的话,有没有办法从一个类别中分享符号,同时保持它们对班级的私密性?
由于
答案 0 :(得分:0)
是的,您的理解是正确的 - 头文件中定义的任何内容都是公开的。
创造真正私人'的唯一方法。声明,将在你的aClass.m
实现文件中,在私有类别中声明它们,例如。
@interface aClass() // --> private anonymous category
@property (nonatomic, strong) id somePrivateProperty;
@end
@implementation aClass
- (void)someFunction() {
// can access self.somePrivateProperty
}
@end