IOS培训
美国上市IOS培训机构

400-111-8989

热门课程

ios开发常用知识点总结

  • 时间:2017-03-17
  • 发布:iOS培训
  • 来源: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开发:如何搭建开发环境

IOS开发中的这些权限,你搞懂了吗?

IOS开发CPU/GPU消耗原因分析和解决办法

IOS开发 微信分享和QQ分享的总结

iOS 11 Beta3 出现繁体、简体语言显示错误教程

选择城市和中心
贵州省

广西省

海南省

台湾