OC对象,自动释放池,OC与C语言的区别

laorenyuhail 2018-08-22 原文

OC对象,自动释放池,OC与C语言的区别

    在C语言中,编程都是面向过程的编程,每一个代码块都严格按照从上至下的顺序执行,在代码块之间同样也是这样,

    但是在OC中往往不是这样,OC和C++、java等语言一样,都是面向对象的编程语言,在代码的执行上有很大的跳跃性。

    OC是C语言的超集,对C语言所有的功能进行了封装,例如,OC对C语言的字符串进行了封装形成了OC的NSString,对字符串进行封装形成了NSArray;

    OC中可以这样定义一个字符串:NSString *str = @””;在这里对这句话加一个说明,NSString 是定义字符串的关键字,* 是在定义OC对象类型变量时必须使用的,

str是你定义的变量名,@是将c基本对象类型对象化,在赋值和输出的时候会普遍用到,引号之间就是你想赋值给str的内容(在这里即为空),最后和C语言一样以分号结尾,

同样我们可以定义一个数组类型的变量:NSArray *arr = @[@””,@””];(这个数组里面有两个元素,两个元素都为空);

自动释放池就是用来自动释放内存的,当一个对象是用strong,copy,retain创建,并且在自动释放池中,每过一段时间系统会自动去判断这个对象的生命周期,即这个对象是否在被使用,如果已经没有被使用,那么这个对象将被释放掉,在ARC机制(Xcode默认ARC)里面通常不用自己写,也有一些特殊情况会要自己去写,一些短时间内创建大量内存的,比如视频操作。

在C语言中输出用printf;但是printf只能输出C语言的基本对象类型,不能输出对象类型,所以在OC中用NSLog进行输出

输出的格式为:NSLog(@”%@ %@”,str,arr);

 

posted on 2018-08-22 22:03 老人与海l 阅读() 评论() 编辑 收藏

 

 
版权声明:本文为laorenyuhail原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/laorenyuhail/p/9520718.html

OC对象,自动释放池,OC与C语言的区别的更多相关文章

随机推荐

  1. 动态规划之0-1背包问题

    0-1 背包问题是动态规划中一个典型的问题。 问题描述 给定n种物品和一个背包,物品 i 价值 wi 和重量 […]...

  2. 计算机软件著作权查询网址

    计算机软件著作权查询网址 http://www.ccopyright.com.cn/cpcc/notice/s […]...

  3. 基于递归算法,树形结构数据下业务场景,封装解决方法

    本文源码:GitHub·点这里 || GitEE·点这里 一、递归算法 1、概念简介 递归算法的核心思想是通过 […]...

  4. 01 . OpenResty简介部署,优缺点,压测,适用场景及用Lua实现服务灰度发布

    简介 OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 […]...

  5. iPhone,iPhone手机正式上市销售 或撼动手机业 – 沧海依粟

    北京时间6月30日消息,据国外媒体报道,iPhone于美国东部时间6月29日下午6点(北京时间6月30日早上6 […]...

  6. awbeci—一个帮助你快速处理日常工作的网址收集网站

    大家好,我是awbeci作者,awbeci网站是一个能够快速处理日常工作的网址收集网站,为什么这样说呢?下面我 […]...

  7. 【HR面试100问】一篇文章根治各种HR面试问题,文章给出参考答案

    这是一篇解答HR各种问题的文章,如果你困惑于HR提出的各种刁钻问题,那请你仔细阅读,对你没有帮助,请打我! I […]...

  8. 前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画

    写在前面 马上就2020年了,不知道小伙伴们今年学习了css3动画了吗? 说起来css动画是一个很尬的事,一方 […]...

展开目录

目录导航