学习OC

作者: 鄭经仁 | 来源:发表于2021-03-09 14:19 被阅读0次

    1.数组越界,字典取空问题解决

    实现一个数组或者字典的扩展方法,判断数组或者字典是否为空或者越界,如果是返回对象,通过runtime交换数组或者字典系统方法。

    2.setNeedsDisplay、setNeedsLayout、layoutIfNeed区别

    setNeedsDisplay会调用drawRect方法重画页面

    setNeedsLayout会调用layoutSubviews,页面才会发生变化。调用layoutIfNeed不会触发

    3.封装组件

    通过RSA和RES加密,然后加入私有库,通过pod引用,解密使用

    4.AES、RSA

    目前最广泛的是使用AES+RSA组合加密的方式。即采用对称加密与非对称加密相结合的方式

    客户端用AES加密传输数据(RSA消耗大,影响用户体验),然后通过RSA加密AES的秘钥,传给后台,后台也是通过同样方式传输数据给客户端

    5.循环引用

    当两个不同的对象各有一个强引用指向对方,那么循环引用便产生了,当然多一个对象产生的环也是一样的。

    1、父类与子类 

          父类调用子类,并且子类调用父类,会造成循环引用

    2、Block 

          Block 对象ARC中用Strong修饰,MRC中用copy修饰

          Block 本身被Self强引用,并且在Blcok中 强引用了Self ,会造成循环引用,解决方法是使用  weakSelf 代替Self

    3、Nstimer

        计时器保留其目标对象,反复执行任务导致的循环

    6.Blcok

      Block有栈block,堆block,全局block三种

      栈block存在栈中是自动销毁,堆block存在堆中,需要手动销毁,全局block存在全局区,相当于单利

      block使用copy修饰,是因为block默认是栈block,如果不用copy,函数引用结束后,会自动销毁,再次引用block会空指针异常,使用copy后

      会成为堆block,可以再次调用。

    7.[ [ NSObject alloc ] init ]

    alloc负责分配内存,init负责初始化

    8. self调用本身方法,super调用父类方法

    super class 和self calss是一样的 获取的都是当前子类,只是super class会找父类的方法而已,但是打印是一样的

    9.main函数之后,会创建UIApplication,设置Appdelgte代理,Appdelgte里面会有一个uiwindow,UIwindow里面会有Controller控制器

    10. nil:判断空对象 null :判断空指针 nsull:判断空集合

    相关文章

      网友评论

          本文标题:学习OC

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