• 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);

  • 相关阅读:
    [C]recursion递归计算阶乘
    [Python]reduce function & lambda function & factorial
    [C/JAVA] ceil, floor
    OC项目调用C++
    Xcode 代码注释
    百度云加速器
    UITableView和MJReFresh结合使用问题记录
    OC 类的load方法
    JLRoutes笔记
    推送通知项目记录
  • 原文地址:https://www.cnblogs.com/laorenyuhail/p/9520718.html
Copyright © 2020-2023  润新知