我已经阅读了@synthesize
并发现了一些关于这个问题的非常好的信息:What exactly does @synthesize do?我理解了实例变量和属性之间的区别,但在我继承的代码中,我的问题比这更进一步,我想知道在下列情况下它做了什么(或者是否必要)。如果需要更多代码上下文,请询问。
// example.h
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;
// example.m
@synthesize managedObjectContext = _managedObjectContext;
//... later on in example.m
- (NSManagedObjectContext *)managedObjectContext {
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
_managedObjectContext = [[NSManagedObjectContext alloc] init];
return _managedObjectContext;
}
因此,链接答案MapView
和MapView1
的示例都在.h
文件中定义,而在我的示例中,指向_managedObjectContext
的指针从未定义为在进行全球搜索后,我可以告诉他们。我们将@synthesize
关键字与managedObjectContext
关键字一起使用,并在实现文件中提供@synthesize
的具体定义。
所以我的问题实际上是2:
_managedObjectContext
在这里做什么了? Dim x, y As Int
Dim rng As Range
x = 1 ' For A
y = 4 ' For D
Set rng = Columns(Chr(64 + x) & ":" & Chr(64 + y))
没有像其他示例问题那样定义时仍然可以编译?答案 0 :(得分:3)
_managedObjectContext
的默认后备实例变量。注意:这些日子不需要@synthesize
。
答案 1 :(得分:0)
在今天的框架中,您不需要@synthesize
。 Property
将由框架自动合成。