Objective c 为什么不';我不需要这个核心数据属性的ivar吗?

Objective c 为什么不';我不需要这个核心数据属性的ivar吗?,objective-c,core-data,instance-variables,Objective C,Core Data,Instance Variables,这里的源代码是什么使得我不需要将managedObjectContext声明为ivar??\u managedObjectContext存在于何处?双下划线前缀是什么 标题 @interface CAHistoryController : NSObject {} @property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext; @end 实施 @implementation EBHis

这里的源代码是什么使得我不需要将managedObjectContext声明为ivar??
\u managedObjectContext
存在于何处?双下划线前缀是什么

标题

@interface CAHistoryController : NSObject {}

@property (nonatomic, retain, readonly) NSManagedObjectContext *managedObjectContext;

@end
实施

@implementation EBHistoryController

@synthesize managedObjectContext=__managedObjectContext;
- (NSManagedObjectContext *)managedObjectContext
{
  if (__managedObjectContext != nil)
  {
    return __managedObjectContext;
  }
  // ...etc
}

@Synthesis增加了在相对较新的编译器版本中自动合成关联存储的能力(实际上,虽然模拟器最初不支持此模式,但并不太新)。

@synthesis不带=部分将生成与属性名同名的ivar。当你做=,你告诉它用一个不同的名字做一个ivar