OC17內存管理和自動引用計數

//
//  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
相關文章
相關標籤/搜索