//  Person.h#import <Foundation/Foundation.h>@interface Person : NSObject@end

//  Person.m#import "Person.h"@implementation Person- (void)dealloc
{NSLog(@"%s", __func__);
//    [super dealloc];      //ARC不准写
}
@end

//
//  main.m
//  ARC基本概念
//  不准许使用retain,release,dealloc里面不准许[super dealloc],编译器特性不是运行时特性,是xocde的功能,不是运行时跟你回收内存,而是xcode在编译的时候会跟你插入retain,release,是xcode帮你写了一些释放内存的代码。其他语言的垃圾回收机制是定时的去查看,没有使用就回收,ARC是写好了代码,执行代码,不是定时的去查看。完全消除了手动内存的管理。ios5之后默认就是ARC的。    插入代码之后就可以在手机上面运行了。#import <Foundation/Foundation.h>
#import "Person.h"int main(int argc, const char * argv[]) {Person *p1 = [[[Person alloc] init] autorelease];   //报错,ARC不准写autorelease//默认情况下所有的指针都是强指针Person *p = [[Person alloc] init];[p retain]; //报错,ARC不准写retain[p release];  //报错,ARC不准写release
    {Person *p5 = [[Person alloc]init]; //大括号执行完,p5就销毁了,就没有强指针指向这个对象了,那么这个对象就销毁了}   //  [Person dealloc]
    {Person *p6 = [[Person alloc]init]; //
        p6 = nil;   // 只要没有强指针,对象就释放。单个对象内存管理:不使用就置位nil,//  [Person dealloc]
    }{// ARC判断对象是否释放,并不是判断引用计数。  ARC的判断准则: 只要没有强指针指向对象, 对象就会释放// 默认情况下所有的指针都是强指针Person *p = [[Person alloc] init];p = nil; //[Person dealloc]__strong Person *p1 = [[Person alloc] init];
//        // 弱指针__weak Person *p2 = p1;p1 = nil; //[Person dealloc]// 在开发中, 千万不要使用一个弱指针保存一个刚刚创建的对象// 立即释放__weak Person *p3 = [[Person alloc] init];  //[Person dealloc]
    }return 0;
}

oc55--ARC单个对象的内存管理相关推荐

  1. 视频教程-iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-iOS

    iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化 小码哥教育CEO,曾开发了2个iOS的流行开源框架(MJRefresh.MJExtension),目前在国内的使用率非常高. 李 ...

  2. iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-李明杰-专题视频课程...

    iOS底层原理班(下)/OC对象/关联对象/多线程/内存管理/性能优化-236人已学习 课程介绍         得遇名师,突飞猛进!iOS培训王者MJ(李明杰)老师精心研发,iOS进阶课程,实用技术 ...

  3. Python对象及内存管理

    对象类型 标准类型 Integer.Boolean.Long integer.Floating point real number.Complex number.String.List.Tuple.D ...

  4. java学习二---对象和内存管理

    1.实例变量和类变量的内存分配 类变量 :使用static修饰的成员变量是类变量,属于该类本身 实例变量:没有使用static修饰的成员变量是实例变量,属于该类的实例 由于同一个JVM内每个类只对应一 ...

  5. c++ 类和对象的内存管理

    c++类对象中的成员变量和成员函数是分开存储的 成员变量: 普通成员变量:存储在对象中,与struct变量有相同的内存布局和字节对齐方式 静态成员变量:存储于全局数据区中 成员函数:存储于代码段中 c ...

  6. 关于内存管理/set/get方法

    MRC状态下 1 任何继承NSObject的对象,存放于堆控件中,都需要手动管理内存 . 2 基本数据类型放到栈中,对象放到堆空间中,内存是有系统管理的.(int\float\enum\struct) ...

  7. OC 知识:彻底理解 iOS 内存管理(MRC、ARC)

    1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 而一个移动设备的内存是有限的,每个软件所能占用的内存也是有限的 ...

  8. iOS开发ARC内存管理技术要点

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  9. iOS开发ARC内存管理

    本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更不是垃 ...

  10. iOS 下ARC的内存管理机制

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

最新文章

  1. MindInsight训练可视整体设计介绍
  2. 关于征集2020重大科学问题和工程技术难题的通知
  3. 安装Windows Vista
  4. 《跃迁 从技术到管理的硅谷路径》读后感
  5. [转]数据库开发21条军规
  6. Java的内置垃圾收集如何使您的生活更美好(大部分时间)
  7. Java EE 8中的MVC 1.0:使用Facelets入门
  8. HTML5 API详解(13):video/audio 视频/音频
  9. 社区出入登记1.0.53完整安装包+小程序前端
  10. 【剑指Offer】29、最小的K个数
  11. vue的json格式化工具json-viewer
  12. jdk1.8 64位 32位免费下载
  13. 2021年最值得推荐的10款数据可视化工具,看完我收藏了
  14. 8086/8088CPU内部结构
  15. 【实用】SAP成本组件分割价格取数逻辑
  16. 关于RAID磁盘阵列与阵列卡的介绍 —— 做一个懂它的男人
  17. 团队管理的一些基本要点
  18. Wap Push 源码java实现
  19. weblogic unable to get file lock问题解决方案
  20. 2020开年,C语言重回巅峰王座!

热门文章

  1. matlab利用窗改变幅值_Matlab在车辆中的应用 信号处理分析
  2. centos www服务器文件unable create,Centos Vsftpd 无上传权限 (553 Could not create file)
  3. Title函数--Matplotlib
  4. 直播程序源码更简单的搭建方法
  5. mysql 针对table的查看命令行
  6. 带你了解Java Agent
  7. 开源转场库HYBControllerTransitions
  8. tomcat知识点总结
  9. QT编译项目错误:转换到coff期间失败文件无效或损坏
  10. @postconstruct 不执行_【如何分析恶意软件在系统中执行了?】