我的目标是建立一个框架,但不向公众头包封物的属性和方法
点的一些方法和属性是框架已经一切内置的,但不同的版本必须具备的一些性质和方法隐藏
我正在寻找一些方法,从构建标题中删除一些标记的属性或避免它们在构建阶段添加。
在我看来,应该是这样的:
@interface MyClass
@property (strong, nonatomic) SomeClass1* instance1;
#AVAILABLE FROM 1.0.2
@property (strong, nonatomic) SomeClass2* instance2;
#AVAILABLE FROM 1.0.3
@property (strong, nonatomic) SomeClass3* instance3;
- (void) method1;
#AVAILABLE FROM 1.0.3
- (void) method2;
@end
所以,如果我设置一些预定义的版本值或项目版本值(其实并不重要)到1.0.2
然后INSTANCE1,INSTANCE2和method1应该在框架标题中,但
instance3和method2将仅在版本1.0.3或更高版本中可用
有谁知道该怎么做?
非常感谢你的答案!它看起来是正确的,除非预编译器从构建中采用道具和方法,那么我的代码可能无法工作。目标是从标题中提取它们,但将它们留在构建中。无论如何,我非常感谢你的帮助,让我检查这是否适合我。 – Ezeki
我的建议是,如果它是属性,你可以用这个方法在头文件中声明它并实现它,而不是合成它。要声明变量,你可以在.m文件中使用扩展名。对于这些方法,我认为它可以帮助你...您可以使用预编译器将'@ private'放在最佳位置。我对答案进行了修改...... – Jpellat
对不起,我们忘记了这一点....我们不能使用私有方法,只能使用声明值...但是您可以在.m中声明的扩展名上有条件地创建它... – Jpellat