博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC-内存管理的一些要点
阅读量:6594 次
发布时间:2019-06-24

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

创建一个BOOK对象,对其属性进行声明 定义。

@property 属性声明 定义了对属性的赋值 

-(void) dealloc 方法在对象销毁的时候进行调用。

#import 
@interface Book : NSObject@property (nonatomic,assign) int price;@end

#import "Book.h"@implementation Book-(void)dealloc{    NSLog(@"Book is dealloc");    [super dealloc];}@end

创建一个Person对象,对其属性进行声明 定义。

@property 属性声明 定义了对属性的计数加一并在-(void) dealloc 方法在对象销毁的时候减一;

#import 
#import "Book.h"@interface Person : NSObject@property (nonatomic ,retain)Book *book; @end
#import "Person.h"@implementation Person-(void)dealloc{    [_book release];    NSLog(@"Person is dealloc");    [super dealloc];}@end

在main函数中。声明两个对象。并同一时候在使用完后进行销毁。遵循了谁创建谁销毁的原则。
#import 
#import "Person.h" #import "Book.h"int main(int argc, const char * argv[]){ Person *p=[[Person alloc] init]; Book *b=[[Book alloc] init]; b.price=45; p.book=b; [b release]; NSLog(@"%d ",p.book.price ); [p release]; return 0;}

@property属性的參数分别为

assign,retain,copy-针对引用计数。assign为默认,并在非oc对象作为属性时使用

nonautomic,automic-在线程中起一定的作用,一般nonautomic效率会高点,默认是automic

readonly,readwrite-对属性进行setter getter存储。一般默认是readwrite

转载于:https://www.cnblogs.com/clnchanpin/p/6899731.html

你可能感兴趣的文章
[LeetCode] Course Schedule
查看>>
selenium层级定位及鼠标键盘操作
查看>>
SpringBoot跨域问题解决方案
查看>>
(转载)hibernate3.0配置文件模板
查看>>
46、练习:输出指定目录下的所有文件名称
查看>>
IP地址与数字地址相互转换
查看>>
Knockout.Js官网学习(创建自定义绑定)
查看>>
win10 x64中 windbg x64 安装配置符号库
查看>>
python 抽象类、抽象方法、接口、依赖注入、SOLIP
查看>>
笔记1
查看>>
POJ1068 Parencodings 解题报告
查看>>
字符串连接[不用库函数]
查看>>
使用Hystrix实现自动降级与依赖隔离-微服务
查看>>
Parcelbale接口
查看>>
新建一个express工程,node app无反应
查看>>
Python去掉字符串中空格的方法
查看>>
[转] 用GDB调试程序(五)
查看>>
OCM_第十一天课程:Section5 —》数据仓库
查看>>
水晶报表
查看>>
kettle-多文件合并
查看>>