这里的源代码是什么使得我不需要将managedObjectContext声明为ivar? __managedObjectContext
存在于何处?双下划线前缀是什么?
标题
@interface CAHistoryController : NSObject {}
@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;
@end
实施
@implementation EBHistoryController
@synthesize managedObjectContext=__managedObjectContext;
- (NSManagedObjectContext *)managedObjectContext
{
if (__managedObjectContext != nil)
{
return __managedObjectContext;
}
// ...etc
}
答案 0 :(得分:2)
@synthesize增强了在相对较新的编译器版本中自动合成相关存储的能力(实际上,尽管模拟器最初不支持这种模式,但实际上并非如此。)
答案 1 :(得分:0)
没有=< somename>的@synthesize part会生成一个与属性名称同名的ivar。当你执行=< somename>时,你告诉它使用不同的名字制作一个ivar。