首页 / 知识
关于iphone:我需要发布xib资源吗?
2023-04-15 07:08:00

Do I need to release xib resources?
如果我有一个像UILabel链接到xib文件的东西,我是否需要在我的视图dealloc上发布它? 我问的原因是因为我没有分配它,这让我觉得我不需要释放它?
在实施中:
如果您遵循现在被认为是最佳实践的内容,则应该释放出口属性,因为您应该将它们保留在set访问器中:
这种方法的优点是它使内存管理语义清晰明了,并且它可以在所有nib文件的所有平台上一致地工作。 注意:以下注释仅适用于3.0之前的iOS。对于3.0及更高版本,您应该在viewDidUnload中简单地取出属性值。
但是,这里需要考虑的一点是,您的控制器可能会处理其用户界面并按需动态重新加载它(例如,如果您有一个视图控制器从nib文件加载视图,但是根据请求 - 例如在内存压力下 - 释放它,期望在再次需要视图时可以重新加载它。在这种情况下,您希望确保在处理主视图时您还放弃任何其他商店的所有权,以便它们也可以被取消分配。对于UIViewController,您可以通过覆盖
不幸的是,这引发了另一个问题。因为UIViewController当前使用
解决方法是确保出口变量也在
我在Apple文档中找到了我想要的东西。简而言之,您可以将对象设置为您释放和保留的属性(或只是@property,@ syntize),但您不必使用UILabels之类的东西: http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/LoadingResources/CocoaNibs/chapter_3_section_4.html#//apple_ref/doc/uid/10000051i-CH4-SW18 该
如果您正确编写了setView:part,则部分完全是多余的。 如果你不在dealloc上释放它会增加内存占用。 使用仪器ObjectAlloc图查看此处的更多详细信息 如果您不将IBOutlet设置为属性而仅将其设置为实例变量,则仍必须将其释放。这是因为在initWithNib上,将为所有IBOutlet分配内存。因此,即使您没有在代码中保留或分配任何内存,这也是您必须发布的特殊情况之一。 任何作为Nib主视图子视图的IBOutlet都不需要发布,因为它们将在创建对象时发送自动释放消息。您需要在dealloc中释放的唯一IBOutlet是顶级对象,如控制器或其他NSObject。这一点在上面链接的Apple文档中都有提及。 在某种意义上,您可以通过在IB中创建标签来分配标签。 IB的作用是查看您的IBOutlets及其定义方式。如果您有一个类变量,IB要为某个对象分配引用,IB将为您发送一条保留消息给该对象。 如果您正在使用属性,IB将使用您必须设置的属性而不显式保留该值。因此,您通常会将IBOutlet属性标记为保留:
因此,在以太的情况下(使用或不使用属性),您应该在dealloc中调用release。 相关:使用Cocoa / Objective C了解引用计数 |
最新内容
相关内容
linux文件常用命令?
linux文件常用命令?,工作,地址,信息,系统,命令,目录,标准,情况,管理,常用命令,linux常用命令及用法linux系统常用操作命令如下:ls:全拼list,功能文件夹排序linux命令?
文件夹排序linux命令?,系统,数字,信息,工作,时间,命令,管理,设备,单位,工具,基本linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux打开文件夹命令?
linux打开文件夹命令?,工作,系统,信息,命令,图片,文件,管理,发行,名字,名称,请问Linux下通过命令行怎样打开文件xdg-open:这个命令可以打开任何linux命令拷贝文件?
linux命令拷贝文件?,系统,文件,命令,目录,情况,源文件,目标,文件夹,选项,语法,LINUX复制命令是什么?1、在Linux中,用于复制文件和目录的命令是clinux创建硬链接命令?
linux创建硬链接命令?,数据,系统,链接,地方,信息,文件,概念,时间,位置,工作,Linux查看—个目录下所有文件,不包括隐藏文件用哪条命令?1、ls命linux释放地址命令?
linux释放地址命令?,地址,系统,工作,信息,网络,命令,目录,基础,工具,管理,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命令压缩文件夹命令linux?
压缩文件夹命令linux?,系统,软件,命令,工具,电脑,文件,文件名,格式,选项,目录,Linux中文件的压缩与解压缩命令操作示例集锦在Linux系统中,我们linux变量释放命令?
linux变量释放命令?,系统,环境,名称,工具,官网,简介,变量,环境变量,命令,内存,如何手动释放Linux内存?1、也就是说可以通过修改/proc中的文件,linux配置文件夹命令?
linux配置文件夹命令?,地址,系统,工作,信息,命令,标准,服务,名称,位置,文件,linux中怎么添加或修改配置文件1、首先打开一台linux虚拟机。输入linux管理文件的命令?
linux管理文件的命令?,系统,管理,工作,命令,信息,基础,目录,工具,文件,操作,linux系统常用操作命令1、linux常用命令有pwd命令、cd命令、ls命linux命令文件授权?
linux命令文件授权?,系统,工具,权限,文件,档案,数字,软件,信息,时间,电脑,linux文件权限命令Linux系统下,chmod可以设置文件访问权限,chgroup是linux命令行文件夹?
linux命令行文件夹?,系统,名称,文件夹,不了,命令,文件,名字,通用,数据,首次,linux系统删除文件夹命令1、linux删除命令rm-rf命令。具体详情:rm