OC17内存管理和自动引用计数

本文介绍了Objective-C中内存管理的基本概念,包括如何手动管理内存和自动引用计数(ARC)的工作原理。通过实例展示了对象的引用计数操作,如retain、release等,并解释了自动释放池的作用。
//
//  ViewController.m
//  OC17内存管理和自动引用计数
//
//  Created by Zoujie on 15/10/25.
//  Copyright © 2015年 Zoujie. All rights reserved.
//

#import "ViewController.h"
#import "Fraction.h"
@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
#pragma mark 内存管理的基本知识
//应用没有足够的内存去坐更多地事情,就有崩溃的可能。内存管理关心的是清理(回收)不用的内存,以便内存能够再次利用。
//    1.释放不在使用对象的内存
//    2.确定对象不在需要使用
//    3.引用计数(手动,用于支持遗留的非ARC工程)
    [self managerMemoryByMyself];
//    4.Xcode4.2以后  ARC 自动引用计数
    [self autoARC];
    
    
}

-(void)managerMemoryByMyself
{
//    当创建对象时,初始的引用计数为1
//    每当创建引用到对象需要为引用对象+1  ,发送retain消息
    id obj,obj1;
//    [obj retain];

//    当不需要对象时,通过给对象发送release消息 ,为引用计数减1
//    [obj release];
    
//    当引用计数为0的时候,系统就知道这个对象不在需要使用了
    
//    add方法 会增加引用计数
    [obj addObject:obj1];
    [obj addSubview:obj1];
    
//    remove会减少对象引用计数
    [obj removeObjectAtIndex:0];
    [obj removeFromSuperview];
    
    
//    NSAutoreleasePool 自动释放池可以帮助追踪需要延迟一些时间释放的对象,通过给自动释放池发送drain消息,自动释放池会被清理,对象会被释放
//    [obj1 autorelease];
    
    Fraction *frac1 = [[Fraction alloc]init];
    Fraction *frac2 = [[Fraction alloc]init];
    
//    [frac1 release];
//    [frac2 release];
    
    
    
}


-(void)autoARC
{

}














- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end


转载于:https://my.oschina.net/u/2319073/blog/521924

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值