iPhone:何时将Objective C变量作为实例变量?

| 一般来说,何时应在Objective C中将变量设为实例变量? 例如,假设我有一个带有UILabel的UIViewController。在什么情况下,我会将UILabel作为实例变量而不是像这样做:
UILabel *label = [[UILabel alloc] init];
//set text of label
[view.addSubview label];
[label release];
    
已邀请:
        在您的特定示例中,对象被编写为变量,以便在将其添加到视图(保留它)之后可以向其发送“ 1”消息。 没有变量的等效代码是:
[view addSubview:[[[UILabel alloc] init] autorelease]];
我们不需要发送发布,因为我们正在自动释放对象。     
        如果您对任何资源都需要中等持久性的句柄,则应将其设为实例变量,前提是所讨论的资源至少应保持中等持久性。 在上面的示例中,是。标签应该是一个实例变量,可能是使用IBOutlet分配的实例变量。 一般而言,UIKit中存在的大多数东西(与Foundation相对)都受益于通过NIB文件实例化并随后通过出口进行访问。 这不只是性能问题;在大多数情况下,它还与内存管理和碎片化以及简化翻译和国际化有关。     
        对于您的特定情况,如果您以后需要访问该标签(例如更改文本),则保留ivar可以节省您尝试再次查找它的精力。 一般原因是持久性,范围和便利性。     

要回复问题请先登录注册