我正在编写一个包装类,它使用动态运行时将消息转发到包装对象,使用forwardInvocation:
然而,类型检查器现在抱怨我的包装类没有实现这些方法,这通常是一件好事。
所以我想我会在包装器的标题中写一些方法声明来满足类型检查器。请注意,我只想要声明,而不是定义。
然而,当我复制我的@property
指令时,它们不仅被声明,而且被定义,并且以这种方式它们优先于方法转发,因此它打破了转发。
那么有没有办法声明@property
并且没有自动合成getter和setter?我喜欢这个功能所以我只想在每个类的基础上禁用,并在项目的其余部分保留它。有点像-fno-objc-arc
。
P.S。 clang -v
=> $ Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
答案 0 :(得分:6)
如果你添加
@dynamic yourProperty;
到类实现然后没有实例变量和没有访问器函数 为该属性合成。