- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
带有@property nonatomic 和 retain 的变量是否应该显式释放。
@interface MyScreenViewController : UIViewController <UIWebViewDelegate> {
UIWebView* greetingView;
}
@property(nonatomic, retain) IBOutlet UIWebView* greetingView;
- (void)dealloc {
[greetingView release];
}
是否需要在 delloc 方法中发布???
最佳答案
当然。是的,您应该通过保留、复制和不分配来释放您的属性(property)。您在 viewDidUnload 中将该属性设置为 Nil。
- (void)viewDidUnload {
[super viewDidUnload];
self.greetingView = nil;
}
- (void)dealloc {
[greetingView release],greetingView = nil;
[super dealloc];
}
引用 UIViewController 类中的内存管理引用:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html
内存是 iOS 中的关键资源, View Controller 提供内置支持以在关键时刻减少内存占用。 UIViewController 类通过其 didReceiveMemoryWarning 方法提供一些对低内存条件的自动处理,该方法释放不需要的内存。在 iOS 3.0 之前,此方法是释放与自定义 View Controller 类关联的额外内存的唯一方法,但在 iOS 3.0 及更高版本中,viewDidUnload 方法可能更适合大多数需求。
当出现低内存警告时,如果 UIViewController 类知道可以稍后重新加载或重新创建它们,则会清除其 View 。如果发生这种情况,它还会调用 viewDidUnload 方法让您的代码有机会放弃与您的 View 层次结构关联的任何对象的所有权,包括使用 nib 文件加载的对象、在 viewDidLoad 方法中创建的对象以及在 viewDidLoad 方法中延迟创建的对象运行时并添加到 View 层次结构中。通常,如果您的 View Controller 包含导出(包含 IBOutlet 关键字的属性或原始变量),您应该使用 viewDidUnload 方法放弃这些导出的所有权或您不再需要的任何其他与 View 相关的数据。
关于IOS : Releasing variable with @property (nonatomic,保留),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7685952/
您好,下面是我在 AWS 中创建启用了弹性 IP 的实例的模板。但是我不确定我哪里出错了。我已经通过在线 json 验证器验证了 json,仍然面临问题请帮忙 { "AWSTemplateForm
标题有点乱,但已经说明了一切。我想在一个属性的属性上有一个属性观察器: class A { var b: B init() { b = B() } fu
假设我的一个 Controller 中有这样的方法: [Route("api/Products")] public IQueryable GetProducts() { return db.P
这有效: // @flow import React, {Component} from 'react'; type Props = {}; class Delete extends Componen
我有一个 ViewModelBase 类,我在其中为 INotifyPropertyChanged 接口(interface)定义了 RaisePropertyChanged 方法。大多数 MVVM
我创建了类: class StorageBase { public Queue Slices {get;set;} } 和 wpf 自定义控件,它具有 StorageBase 类型的依赖属性
我的 java 应用程序问题是 log4j2 系统日志不是写在 'local1.log' 中而是'消息'。我的/etc/rsyslog.conf 在/etc/rsyslog.conf 中配置为 'lo
为什么需要在对象中使用 this.property = property ?它是用来定义对象的“外部世界”的属性吗? function Person(property) { this.property
摘要: 这个问题是关于属性的继承与从彼此继承属性的类的内部和外部的不同读/写访问相结合。 详细信息: 我有一个类 A 和另一个继承自 A 的类 B。 A 中声明了属性someProperty。我希望该
我正在开发 ASP.NET MVC 应用,设计域模型,使用(测试)新的 EF Code First 功能。 我有一个可能有也可能没有截止日期的事件实体,处理它的最佳方法是什么? 1 个属性: publ
我在配置项目时经常使用它们,但大多数情况下都是按照指示添加 fragment 。我完全不知道哪个文件到底是做什么的。谁能清楚地说明每个文件的用途。 到目前为止我认为 local.properties
在运行 python 文件以使用 rasa nlu 训练文件时,我在命令提示符下收到此错误 我目前正在使用 Windows 10 rasa_core==0.8.2 rasa_nlu==0.11.4 p
我在这方面遇到了一些麻烦,尽管我已经搜索了答案,但还是找不到。 为了使用 AsyncAppender,我看到了很多不同的 log4j 配置,无论如何,它们都与 .properties 配置文件无关。
我正在编写一个 Python 类,并使用 @property 装饰器为该类创建属性。 我在文档中没有找到太多关于这个装饰器的信息,但是从我可以从 Stack Overflow 和我的 Python l
在 gradle 任务中,我可以创建这样的路径: System.env.FOLDER_PATH + '/subFolder' 但我想在我的 gradle.properties 中设置它,所以它会像 s
如何在属性文件的 log4j2 中创建键值对? 我知道在 log4j 版本 1 中它是这样完成的: log4j.appender.x.additionalFields={'key': 'value'}
我想通了 struct PropertyTest { @property int x() { return val; } @property void x( int newVal )
我有 REST (Jersey) webservice,它利用了一些编码/解码到/来自 XML 的数据对象。数据对象位于 webservice war 所依赖的单独项目/jar 中。 我使用 MOXy
我正在创建一个 LinkedList 类: function LinkedList(){ ... 有什么区别: this.addNode = function(data){
关于语义的快速问题:) 如果我正在编写一个协议(protocol),这是首选: // (a) @protocol MyProtocol @property (nonatomic, copy) NSSe
我是一名优秀的程序员,十分优秀!