iOS必备知识点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS必备知识点相关的知识,希望对你有一定的参考价值。

http://www.mamicode.com/info-detail-308725.html

 

alpha和opaque的区别

alpha是用来描述改view的透明度从0到1,0表示的是透明,1表示不透明。alpha支持动画(animation),alpha = 0 与 hidden = YES 效果一样都是看不到view,但是后者相比开销大。在alpha等于0时view接受touch事件,但是hidden则不接受。并且hidden和opaque 不支持动画。alpha并不影响镶嵌在其内部view行为,而hidden会影响。当把view设置为透明背景时,一般把opaque设置为NO,可以减少开销,优化内存.opaque影响图形绘制系统。设置为YES,会优化view的绘制。

 

3,nil,NSNULL,NULL区别

nil是指向obj-c中对象的空指针,是一个对象,在o-c中nil对象调用方法不会引起crash。

Nil是指向obj-c中的类的空指针,表示的是一个空类。

NULL是指向任何类型的空指针(如c/c++中的空指针),在objective-c中是一个数值。

NSNULL用于集合操作,在集合对象中,表示一个空值的集合对象。

 

4.KVC and KVO

KVC(key-value-coding)键值编码,是一种间接操作对象属性的一种机制,可以给属性设置值。通过setValue:forKey:和valueForKey,实现对属性的存取和访问。

KVO(key-value-observing)键值观察,是一种使用观察者模式来观察属性的变化以便通知注册的观察者。通过注册observing对象addObserver:forKeyPath:options:context:和观察者类必须重写方法 observeValueForKeyPath:ofObject:change:context:。常应用MVC模型中,数据库(dataModal)发生变化时,引起view改变。

 

21.应用程序的生命周期和状态(参照:http://blog.csdn.net/totogo2010/article/details/8048652

Not running  未运行  程序没启动

Inactive          未激活        程序在前台运行,不过没有接收到事件。在没有事件处理情况下程序通常停留在这个状态

Active             激活           程序在前台运行而且接收到了事件。这也是前台的一个正常的模式

Backgroud     后台           程序在后台而且能执行代码,大多数程序进入这个状态后会在在这个状态上停留一会。时间到之后会进入挂起状态(Suspended)。有的程序经过特殊的请求后可以长期处于Backgroud状态

Suspended    挂起           程序在后台不能执行代码。系统会自动把程序变成这个状态而且不会发出通知。当挂起时,程序还是停留在内存中的,当系统内存低时,系统就把挂起的程序清除掉,为前台程序提供更多的内存。

下图是程序状态变化图:

技术分享

 

以上是关于iOS必备知识点的主要内容,如果未能解决你的问题,请参考以下文章

前端开发必备!Emmet使用手册

iOS面试必备-iOS基础知识

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

学习Java必备的基础知识打卡12.20,要想学好必须扎实基本功(⭐建议收藏)#yyds干货盘点#

5G音视频时代还不学NDK开发吗,面试必备知识点

让Oracle高效并行执行的13个必备知识点