Objective C confusion - 将sythesized vars设置为ivars

The*_*ler 2 iphone objective-c

我已经注意到在一些例子中我已经看到你将引擎(类变量)设置为_engine(ivar).我不明白.这里发生了什么?

这是我所说的一个例子:@synthesize engine = _engine,delegate = _delegate

Phi*_*ert 9

此语法将属性映射到具有不同名称的实例变量(ivar).

所以:

@synthesize engine = _engine;
Run Code Online (Sandbox Code Playgroud)

将创建访问_engine ivar而不是引擎的属性访问器方法.你仍然可以访问这个属性:

object.engine
Run Code Online (Sandbox Code Playgroud)

有关属性Apple开发人员文档中的更多信息(属性实现指令部分)