在我的Xcode Apple模板中,managedObjectContext在AppDelegate.m中合成,如下所示:
@synthesize managedObjectContext = __managedObjectContext;
Run Code Online (Sandbox Code Playgroud)
我从来没有理解 = __managedObjectContext; 部分.请有人解释一下吗?(它是否调用方法'managedObjectContext'?)
谢谢.
它是为后备实例变量赋予名称__managedObjectContext
.如果只是@synthesize managedObjectContext
,那么支持变量就会被命名managedObjectContext
.
有了这个@synthesize
,虽然,这是因为如果你键入:
@implementation MyObject {
ManagedObjectContextType __managedObjectContext;
}
- (ManagedObjectContextType)managedObjectContextType {
return __managedObjectContext;
}
- (void)setManagedObjectContext:(ManagedObjectContextType *)managedObjectContext {
__managedObjectContext = managedObjectContext;
}
Run Code Online (Sandbox Code Playgroud)
(是的,我正在简化一下.)
以前,@synthesize
是必需的.现在,在大多数情况下,您可以跳过它.当你跳过它时,它相当于@synthesize managedObjectContext = _managedObjectContext
(注意单个下划线).
它仍有一些用处:如果你不包含一个@synthesize
语句但是包含一个setter/getter,编译器将不会自动为你创建一个后备变量.你可以这样做,即使你包括一个getter/setter @synthesize thing = _thing
.
归档时间: |
|
查看次数: |
139 次 |
最近记录: |