美文网首页
OC语言day06-04ARC基本概念

OC语言day06-04ARC基本概念

作者: liyuhong165 | 来源:发表于2016-06-15 23:14 被阅读39次

pragma mark ARC基本概念

pragma mark 概念

/**
 MRC (Manual Reference Counting)    : 手动管理内存
 ARC (automatic Reference Counting) : 自动引用计数 (WWDC2011和iOS5引入的最大改革)
 
 ARC的注意点和优点
 注意点
 ARC 是编译器特性(Xcode的一个功能),而不是运行时特性
 ARC 不是其他语言的垃圾回收, 有着本质区别 (其他语言 是定时的去查看 有没有垃圾回收)
 
 ARC的优点
 完全消除了手动管理内存的烦琐,让程序员更加专注于app的业务                               
 基本上能偶避免内存泄露
 有时还能更加快速,因为编译器还可以执行某些优化
 
 ARC的判断原则
  只要还有一个强指针变量 指向对象, 对象就会保持在内存中
 
 强指针 (__strong)
  默认所有的指针变量都是强指针
 被__strong修饰的指针
 Perosn *p1 = [[Perosn alloc]init];
 __strong Person2 = [[Perosn alloc]init];
 
 弱指针 (__weak)
 
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
    
    /*
//    Person *p = [[[Person alloc]init]autorelease];
#warning 默认情况下所有的指针都是强指针
    Person *p = [[Person alloc]init];
    
//    [p retain];
//    [p release];
     */
    {
#warning ARC 的 判断准则
        // ARC 的 判断准则 : 只要没有强指针指向对象, 对象就会释放
        // 默认情况下 所有的指针都是强指针
        
//        Person *p = [[Person alloc]init];
//                p = nil;
#warning 强指针和弱指针
        /*
        __strong Person *p = [[Person alloc]init];
        // 弱指针
        __weak Person *p2 = p ;
        p = nil;
         */
        
#warning 在开发中,千万不要使用一个弱指针保存一个刚刚创建的对象
//        __weak Person *p = [[Person alloc]init];
        
#warning 单个对象的内存管理
        Person *p = [[Person alloc]init];
        p = nil;
        
    }
    
    
    return 0;
}


Person.h //人类
#import <Foundation/Foundation.h>

@interface Person : NSObject

@end
Person.m
#import "Person.h"

@implementation Person


- (void)dealloc
{
    NSLog(@"%s",__func__);
//    [super dealloc];
    
}
@end

相关文章

  • OC语言day06-04ARC基本概念

    pragma mark ARC基本概念 pragma mark 概念 pragma mark 代码 Person....

  • OC语言基本概念

    基本概念 oc面向对象语言,只需关注具有相关功能的对象,不必亲力亲为。 oc面向对象的三大特性:封装、继承(拷贝一...

  • 07-OC中Runtime方法缓存

    OC中Runtime的基本概念: Runtime是OC中的运行时机制,之所以说OC是一门动态性语言,这也正是因为有...

  • Runtime学习

    rutime基本概念 runtime是什么 runtime是属于OC的底层,是一套比较底层的纯C语言API, 属于...

  • Runtime(一)初识

    基本概念 runtime是属于OC的底层,是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C...

  • 总结:八天学会OC语言(上)

    day1 OC语言day01-01OC的简介(附C语言知识点回顾)OC语言day01-02C和OC的对比OC语言d...

  • 1.6 继承

    本小节知识点: 继承基本概念 OC中的继承关系 OC中如何实现继承 1.继承基本概念 现实生活中的继承 交通工具类...

  • 编写高质量iOS与OS X代码的52个有效方法(一)

    这本书没有OC语言的基础知识,讲的是如何高效运用这门语言 第一章 熟悉OC 1、什么是OC ·OC是为C语言添加了...

  • iOS 开发之八天学会 OC 语言

    八天学会 OC 语言(上)八天学会 OC 语言(下)

  • Objective-C概述

    OC概述 • Objective-C简称OC,OC是C语言的扩充,并且OC是iOS和OS X操作系统的编程语言...

网友评论

      本文标题:OC语言day06-04ARC基本概念

      本文链接:https://www.haomeiwen.com/subject/ngcmdttx.html