首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >objective C中合成性质的差异

objective C中合成性质的差异
EN

Stack Overflow用户
提问于 2013-04-04 19:07:14
回答 2查看 479关注 0票数 0

.h文件中的代码

代码语言:javascript
运行
复制
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;

.m文件中的代码

代码语言:javascript
运行
复制
@synthesize managedObjectContext = __managedObjectContext;

我是objective c的初学者,我想知道@synthesize managedObjectContext; and @synthesize managedObjectContext = __managedObjectContext;有什么不同,可以解释一下吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-04 19:11:11

@synthesize propertyName创建一个变量来支持与该属性同名的属性,而@synthesize propertyName = variableName则为该变量提供一个备用名称(可能是以下划线为前缀的属性名称)。

请注意,在最新版本的Xcode附带的编译器中,不再需要使用@synthesize:编译器会找出需要合成的属性,并隐式地插入

代码语言:javascript
运行
复制
@synthesize propertyName = _propertyName;

对于需要综合的每个属性。

票数 3
EN

Stack Overflow用户

发布于 2013-04-04 19:18:11

如果您使用

代码语言:javascript
运行
复制
@synthesize managedObjectContext = __managedObjectContext;

您可以这样编写代码行:

代码语言:javascript
运行
复制
__managedObjectContext = someContext;

它将通过直接访问该属性来更改存储在该属性中的值,而不使用setManagedObjectContext:方法。

但是,这一行将是不正确的(除非您在它之前声明了一些其他managedObjectContext ):

代码语言:javascript
运行
复制
managedObjectContext = someContext; //wrong
self.managedObjectContext = someContext; //good

P.S.BTW,What exactly does @synthesize do?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15809431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档