Gui*_*ura 11 properties objective-c
我正在将代码从非ARC转换为ARC,并删除一些不必要的@synthesize调用.一个特定的类开始为某些属性发出警告:
Class.h
@property (strong, nonatomic) NSString *xyz;
Run Code Online (Sandbox Code Playgroud)
但在建造时,我收到了警告.
Property 'xyz' requires method 'xyz'to be defined - use @synthesize, @dynamic or provide a method implementation in this class implementation
Run Code Online (Sandbox Code Playgroud)
我认为使用Xcode 4.6和Default Apple LLVM编译器4.2,@properties应该是自动合成的.
如何告诉编译器自动合成属性?我是否必须使用特定的项目配置来删除此警告?
Lil*_*ard 37
这个属性是否属于NSManagedObject子类?NSManagedObject正确地禁用自动合成,因为预期大多数声明的属性@dynamic.
这是通过将NS_REQUIRES_PROPERTY_DEFINITIONS宏放置在之前的宏来实现的,该宏@interface NSManagedObject扩展为__attribute__((objc_requires_property_definitions)).这也可以在其他类上使用,但是NSManagedObject我知道的唯一框架类就是这样做的.