IOS培训

亿元级外企ios培训企业

  • 全国服务监督电话4001118989
iOS培训 > IOS开发教程 > ios开发常用知识点总结
  • ios开发常用知识点总结

    发布:iOS培训  来源:IOS开发教程  时间: 2017年03月17日

  • ios开发常用知识点总结...

  • 1、oc基本语法

    1:属性关键字,使用和意义

    @property()括号里面关键字

    nonatomic/atomic 前者是线程unsafe,后者是线程 safe 默认是atomic,生成的setter方法会加锁 onatomic禁止多线程,提高性能

    assgin/retain/copy/strong/retain

    assgin直接赋值,引用计数不增加

    retain 保留赋值,引用计数加1 只是保留指针

    copy 拷贝,引用计数加1 在堆上开辟一块内存,只对实现了NSCopying协议有效

    strong/weak 强引用和弱引用 强引用是一个强指针 如果这个指针不消失,所指向的对象不会消失,反之弱引用就会消失,强引用好比人和人影子

    __strong/__weak/__unsafe_unretained用来修饰变量

    readWrite/readOnly

    readwrite是给提供个成员变量的访问权限,可读可写,默认属性

    readOnly:只读权限,生成getter方法,并且没有get前缀

    @class作用 引入头文件,但是不包含该类的信息,只是作声明。可以极大地提高编译效率,防止编译错误

    #import 包含该类的所有信息,包括实体变量和方法

    @interface作用是声明一个类,类似于java的接口,在 @ interface声明的变量 只能在该类中访问,property中声明的可以外部调用。

    import防止重复引用

    2

    2:isa/self/super作用

    isa:每一个对象都有一个isa指针,指向元类

    self:当前调用方法的类

    super:调用父类的方法

    3、代理,通知,类目,延展

    1:代理 某一个类要完成某个功能,但是他不能去完成,他指定一些方法,可以是可选择实现也可以是必须实现的,当他指定一个delegate做的时候,这个deelgate就是一个代理。

    2:通知,一对多,观察者向消息中心注册该消息,就可以接收到其他对象发送过来的消息。有一个通知中心发出,通过不同的标示来区分,当在某处按照该标示进行监听的时候,可以获取到消息的信息,消息在不需要的时候需要释放。

    3、类目是类的扩展,可以在已知的类中添加新的方法,但是不能添加变量,类目中的方法优先级高于原始类中的方法,如果原始类中的方法名称和类目中的方法名称相同,那么该方法会被覆盖。

    注:关联引用,是在运行势态的时候,允许为已经存在的类中添加自定义属性,通常建议添加的属性石static char类型的。

    4、延展,在类中的添加的私有方法和变量,并且是必须要实现的。

    4:set/get方法

    5:kvo/kvc原理和使用

    KVC:键值编码,使用键而不是属性去访问变量。

    KVO:键值观察者,提供了一个对象的属性发生改变,可以通知当前对象的机制。

    6:block是什么,使用要注意的地方

    block(闭包):闭包是能够读取其他函数内部变量的函数。建立在栈上,默认情况在闭包内变量被copy一份,所以无法改变变量,加上__block可以修改变量

    GCD和代理:GCD使用block闭包方式代替委托,代码集中简洁,回调在闭包里面完成。

    在ARC中使用__weak防止block

    7:深拷贝,浅拷贝

    深拷贝:深拷贝是对象拷贝,浅拷贝是指针拷贝,比如说,深拷贝一个对象会在堆上重新申请一块内存,两个指针和内容都是相同的。浅拷贝的话就是拷贝该对象的 指针,指向的都是同一块内存。copy和mutablecopy,copy是不可变的,mutablecopy是可变的,所以当使用copy的时候生成的 对象是不可变的,相当于retain,而使用mutablecopy拷贝的对象都是深拷贝。是重新生成的对象,不然就不能改变。

    8:常见数据类型,可变和不可变类型,自定义对象

    常见数据类型,int,float,double,long,ios的封装的数据类型,NSInteger,CGFloat等。

    自定义对象的归档,需要实现NSCoding协议。

    9:ARC和非ARC内存管理

    非ARC内存管理:使用alloc,new,copy生成一个对象,当不需要使用该对象的时候有义务释放它,原则是谁拥有,谁释放。引用计数为0的时候,系统会自动调用dealloc释放内存。

    ARC是ios5.0之后引入的,原理是在编译期间,自动插入retain/copy/release/autorelease。

    10:封转、继承、多态

    封装:高度抽象出来,只暴露接口和需要的参数,不需要显示内部实现机制。

    继承:子类继承父类所有的东西,包括方法,属性。

    多态:不同的对象响应相同的方法称为多态。

    11:单例模式

    单例,保证在整个应用程序中只生成一个唯一的对象,并且很容易让外界所访问,减少了alloc的开销,提高了传递的效率。

    2、SDK常用api使用

    1:UITableViewCell重用机制

    cell的重用机制,通过指定一个identifier区分不同的cell,可以使用已经创建的cell,包括cell上的子视图,当重用cell的时候,会将之前的数据清空,重新赋值,减少cell的内存开销,保证了UITableView的滑动流畅性。

    2:NSTimer

    1、NSTimer并不精确

    2、NSTimer需要添加到runLoop运行才会执行,但是这个runLoop的线程必须是已经开启。

    3、NSTimer会对它的tagert进行retain,我们必须对其重复性的使用intvailte停止。

    3:coreText

    4:LocationManager

    5:远程通知/本地通知NSLocalNoition

    远程推送:APNS(apple provider noticifition sevice)苹果提供的推送服务,原理是,在应用加载的时候注册推送服务,获取apple返回的token,将token发送给指定的服务器,服务器拿 着这个token发送通知给apple,苹果将这个通知推送给指定token的设备。

    本地通知:先注册本地通知,通过设定一段时间触发这个预先的通知。

    6:AVAudioPlayer/MPMoviePlayer

    AVAudioPlayer:只能播放一个完整音频,不能播放流式播放,所以需要播放网络音频时候需要使用音频队列。

    AVPlayer:可以播放本地和流音频

    AudioQueue:音频队列,通过队列分配内存空间,先缓存音频,再使用缓存的音频。

    7:UIScrollView/UICollectionView/UIPageViewControoller

    8:下拉/上拉机制

    9:runtime机制

    runtime运行时系统,是object-c运行赖以依靠的基础。发送消息为例子,在编译阶段,并不知道方法是否被实现了,而是在运行时候才会执行。

    10:UIGesturer/UITouch/UserInterface

    11:UITabBarController/UINavgationBarController

    12:应用程序生命周期/UIViewController生命周期

    ViewController程序生命周期:alloc创建分配内存、init初始化数据,可用、loadView视图加载,如果重写必须要创建一个 view。viewDidLoad视图加载完成,可以将一些subViews的添加在这里处理。viewWillAppear视图将要出现,处理一些过渡 动画。viewDidAppear,视图已经出现。viewWillDisApear视图将要消失,viewDidDisApear视图已经消失。 Dealloc释放一些对象,释放空间。

    应用程序生命周期:DidLoad应用程序加载完成。

    3、网络层,多线程,数据解析,数据存储,异常处理

    1:异步网络请求,NSUrlConnection/ASI/AF/MK

    2:NSOperation和GCD

    3:json和xml解析,RestKit

    4:UserDefalut,NSFile,NSArchive,coreData,sqlite

    4:、UIView动画,core animation动画,使用示例,原理

    1:UIView基本动画/带block动画

    2:CAShapLayer动画

    3:CA映射动画

    4:贝塞尔曲线/CAKey关键帧动画/CATrans/CABase

    5、画图,drect,drectPoint,drectImage,常用的画图方式,原理

    1:drect只调用一次,手动调用setNeedsLayout会自动调用drect,如果view的frame为空,不会调用drect方法,设定view的model可以一直调用drect

    2:layOutSubViews在frame改变的时候会调用

    3:可以指定一块区域画点/画图/ 指定圆心,半径,幅度,起始点,颜色,阴影,透明度,渐变

    6:Xcode的使用,内存instrument,debug

    7、常用的第三方库使用有哪些

    1:图片加载SDWebImage

    2:AFNetWorking/ASIHttpRequest/MKNetWorking

    3:SVProgressHUD

    4:RestKit

    5:RNCacheingUrlProtocol

    6:webViewBridge

    7:JsonKit

    8:storybord使用

    1:指定一个mainController

    2:suger,指定一个identifier

    3:使用NSContrant限制

    4:注意不要多人修改

    9、git使用

    1:git环境搭建

    2:git 初始化

    3:git 关联远程库

    4:git 常用命令,add commit push pull stash reset merge branch log remote ...

    10、要你自己实现一个框架给别人使用,思路

    11、实现一个缓存方案

    12、侧滑的实现思路

  • 上一篇:入门级iOS开发者需掌握的知识清单

    下一篇:iOS开发:如何搭建开发环境

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56