我已经阅读了@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
的具体定义。所以我的问题确实是2:
@synthesize
在这里还做什么? _managedObjectContext
时,为什么仍然编译? 最佳答案
_managedObjectContext
。 注意:这几天都不需要
@synthesize
。关于ios - 提供“实现”实现后,@ synthesize会做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36654814/