zoukankan      html  css  js  c++  java
  • 【iOS系列】-autorelease的作用

    内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease
     
    1:对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的对象进行一次release操作。 
    2:autorelease 加入几次,就会被释放几次
    3:不管你这个对象时在@autoreleasepool 之内创建的还是在之外创建的,只要你在池子中调用了autorelease那么这个对象就会被放入到池子中
    4:autorelease的作用域:是代码块结束。
      
    @autoreleasepool {
           
      } 
     
    ARC机制: ARC,不用程序员在去管理内存
      1.强指针 Strong:只要有强指针指向一个对象,那么系统就不会回收该对象
      2.弱指针 weak:只要没有强指针指向对象,系统立即回收该对象,-弱指针不影响,对象被回收
    //默认情况下,所有的指针都是强指针类型
     
     
    //ARC机制 strong 对象,手动内存管理的retain关键字,(一定能够都是应用在对象类型变量上)
    //ARC机制中的 weak 对象手动内存管理的assign关键字,(一定能够都是应用在对象类型变量上)
     
    //ARC机制下 基本数据类型的@property参数使用,与手动内存管理完全一致
      @property (nonatomic,assign)int age;
     
    //当出现类循环应用的时候,只需要把一方面的Strong引用改为weak,并且在.h文件中使用@class 类名的方式,通知.h文件类的存在
     
    附:
     
    1:项目中ARC与非ARC共存:
     
    在project-->Targets-->Build Phases-->Compile Sources选择要对非ARC代码(双击即可)
    加上参数:
     
    -fno-objc-arc

    2:把项目改为非ARC

    project-->Targets-->Build Settings-->AppleLLVM6.0 - Language - Objective C

    或者在输入框中输入language查找较为方便

      

    作者:Darren

    微博:@IT_攻城师

    github:@Darren90

    出处:http://www.cnblogs.com/fengtengfei/

  • 相关阅读:
    css overflow失效的原因
    css3过渡动画 transition
    css3动画 2D 3D transfrom
    百度前端学院第7-8天笔记,百度前端学院系统维护,所以转战仿京东项目。
    position 的absolute会使display变成inline-block
    css 布局 flex
    sqli-labs lesson5-6 布尔盲注 报错注入 延时注入
    sqli-labs lesson1-4
    有关SQL注入的一些小知识点
    DVWA(三):SQL injection 全等级SQL注入
  • 原文地址:https://www.cnblogs.com/fengtengfei/p/4309771.html
Copyright © 2011-2022 走看看