IOS:使用@property释放变量(非原子,保留)

IOS:使用@property释放变量(非原子,保留),第1张

概述是否应显式释放具有@property非原子和保留变量. @interface MyScreenViewController : UIViewController <UIWebViewDelegate> { UIWebView* greetingView;}@property(nonatomic, retain) IBOutlet UIWebView* greetingView; 是否应显式释放具有@property非原子和保留的变量.

@interface MyScreenVIEwController : UIVIEwController <uiwebviewdelegate> {    UIWebVIEw* greetingVIEw;}@property(nonatomic,retain) IBOutlet UIWebVIEw* greetingVIEw;- (voID)dealloc {  [greetingVIEw release];}

在delloc方法中发布是否必需???

解决方法 当然.是的,你应该发布你的属性与保留,复制,而不是分配.您在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中的关键资源,视图控制器提供内置支持,以在关键时刻减少内存占用. UIVIEwController类通过dIDReceiveMemoryWarning方法提供一些自动处理低内存条件的方法,该方法释放不需要的内存.在iOS 3.0之前,此方法是释放与自定义视图控制器类关联的额外内存的唯一方法,但在iOS 3.0及更高版本中,vIEwDIDUnload方法可能是更适合大多数需求的地方.

发生低内存警告时,如果UIVIEwController类知道它可以重新加载或稍后再次重新创建它们,则会清除它的视图.如果发生这种情况,它还会调用vIEwDIDUnload方法,让您的代码有机会放弃与视图层次结构相关联的任何对象的所有权,包括使用nib文件加载的对象,vIEwDIDLoad方法中创建的对象以及懒惰创建的对象.运行时并添加到视图层次结构中.通常,如果视图控制器包含出口(属性或包含IBOutlet关键字的原始变量),则应使用vIEwDIDUnload方法放弃这些出口的所有权或您不再需要的任何其他视图相关数据.

总结

以上是内存溢出为你收集整理的IOS:使用@property释放变量(非原子,保留)全部内容,希望文章能够帮你解决IOS:使用@property释放变量(非原子,保留)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1055947.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存