为什么我不需要这个Core Data属性的ivar?

时间:2011-07-26 22:54:49

标签: objective-c core-data instance-variables

这里的源代码是什么使得我不需要将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
}

2 个答案:

答案 0 :(得分:2)

@synthesize增强了在相对较新的编译器版本中自动合成相关存储的能力(实际上,尽管模拟器最初不支持这种模式,但实际上并非如此。)

答案 1 :(得分:0)

没有=< somename>的@synthesize part会生成一个与属性名称同名的ivar。当你执行=< somename>时,你告诉它使用不同的名字制作一个ivar。