博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存管理之property
阅读量:6232 次
发布时间:2019-06-21

本文共 968 字,大约阅读时间需要 3 分钟。

hot3.png

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

在一个class中创建和使用property

 声明一个成员变量。

ClassB *objB;

 声明property,加上retain参数。

@property (retain) ClassB* objB;

定义property

@synthesize objB;

除了dealloc方法以外,始终用.操作符的方式来调用property

self.objB 或者objA.objB

 在dealloc方法中release这个成员变量

[objB release];

示例代码如下

ClassA : NSObject

{

         ClassB* objB;

}

@property (retain) ClassB* objB;

@implementation ClassA

@synthesize objB;

-(void) dealloc

{

         [objB release];

         [super dealloc];

}

 给这个property赋值时,有手动releaseautorelease两种方式。

void funcNoAutorelease()

{

         ClassB *objB1 = [[ClassB alloc]init];

         ClassA *objA = [[ClassA alloc]init];

         objA.objB = objB1;

         [objB1 release];

         [objA release];

}

void funcAutorelease()

{

         ClassB *objB1 = [[[ClassB alloc]init] autorelease];

         ClassA *objA = [[[ClassA alloc]init] autorelease];

         objA.objB = objB1;

}

转载于:https://my.oschina.net/makeffort/blog/85627

你可能感兴趣的文章
共享内存
查看>>
关于this
查看>>
用户登录(二次机会)且每次输错误时显示剩余错误次数(提示:使用字符串格式化)...
查看>>
[转载][转帖]谈谈我对攻读计算机研究生的看法。。。大牛的文章,见解精深独到...
查看>>
使用Python进行AES加密和解密
查看>>
Unity_UIWidgets学习笔记03_组件_Image
查看>>
linux cat 命令详解
查看>>
转.给android设备安装busybox
查看>>
Docker swarm集群增加节点和删除节点
查看>>
将 年-月-日 封装成tree树状结构
查看>>
Maximum Depth of Binary Tree
查看>>
DFS
查看>>
UIImageView
查看>>
Dynamic CRM 2013学习笔记(二)插件基本用法及调试
查看>>
c# 报表练习笔记
查看>>
Spark学习之路 (七)Spark 运行流程
查看>>
POJ2667 Hotel(线段树区间合并)
查看>>
codeforces703D Mishka and Interesting sum(区间偶数异或)
查看>>
linphone-android 编译
查看>>
项目分布式
查看>>