禁用一个类的Objective-C自动属性合成?

lms*_*lms 5 objective-c clang

我正在编写一个包装类,它使用动态运行时将消息转发到包装对象 forwardInvocation:

但是类型检查器现在抱怨我的包装类没有实现这些方法,这通常是一件好事.

所以我想我会在我的包装器的标题中写一些方法声明来满足类型检查器.请注意,我只想要声明,而不是定义.

但是,当我复制我的@property指令时,它们不仅被声明,而且被定义,并且以这种方式它们优先于方法转发,因此它打破了转发.

那么有没有办法声明a @property而不是自动合成getter和setter?我喜欢这个功能所以我只想在每个类的基础上禁用,并将其留给项目的其余部分.有点像-fno-objc-arc.

PS clang -v=>$ Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)

Mar*_*n R 6

如果你添加

@dynamic yourProperty;
Run Code Online (Sandbox Code Playgroud)

对于类实现,那么将不为该属性合成实例变量和访问器函数.