我正在尝试隐藏我正在构建的框架中公开可用的标头的 @property 的设置器:
//File: X.h
@interface X
@property (nonatomic,readonly, strong) NSString* identifier;
@end
我有一个向这个接口添加一些方法的类别:
//File: X+implementation.h
@interface X (Implementation)
...
@end
这个类别只能在我的项目下访问,即我在构建框架时不会将其公开。许多消息来源说我应该添加一个带有 readwrite 属性的接口扩展,但这没有用,因为我的类别将无法在“Xm”上看到读写定义。所以我想将它添加到类别声明中:
//File: X+implementation.h
@interface X ()
@property (nonatomic, readwrite, strong) NSString* identifier;
@end
//same file
@interface X (Implementation)
...
@end
这编译但给了我一个[X setIdentifier:]: unrecognized selector sent to instance
我尝试在 Xm 上复制扩展,在 Xm 下手动创建设置器,手动 @synthesize 变量,但这些似乎都不起作用。在这种情况下我该怎么办?