我看到这样的代码:
@synthesize dataController = _dataController;
在视图控制器中这样做的目的是什么?
如果你的类需要存储值,它需要在内存中的某个地方来存储这些数据。实例变量为您的类需要的数据保留内存。
假设您要为字符串或int
变量添加位置。您可以使用实例变量为对象的生命周期保留该内存。每个对象都将为其变量接收唯一的内存。
它很像 C struct
:
struct t_something {
int a; int b;
};
声明了struct
两个字段(a 和 b)。每个值都可以读取和写入,并且struct
足够大以容纳其字段。
这里有大量信息: iPhone ivar 命名约定
要记住的另一件事:
在类中使用实例变量而不是属性可以绕过通常会自动发生的属性实现的任何副作用(保留、复制等)。
如果您编写了希望绕过的自定义属性实现,这一点尤其重要。
我用它来快速访问数据,属性需要写“自我”。以前,vars 没有。