iOS知识点三
来源:互联网 发布:神州数码融信软件 编辑:程序博客网 时间:2024/04/25 19:45
iOS知识点三
1.线程,有哪几种线程类型及使用;
pthread
NSThread
NSOperation
GCD
2.内存管理,内存优化;
内存管理:
OC对象需要管理内存,基本数据类型和构造类型等不需要管理内存
有alloc、new、copy 就需要release(需要遵守谁创建,谁回收的原则。也就是谁alloc,谁release;谁retain,谁release),引用计数有增就要有减
内存优化:
图片、UITableView、循环引用
使用Analyze、Instruments等工具检测
3.cocoapods;
CocoaPods会将所有的第三方库以target的方式组成一个名为Pods的工程。整个第三方库工程会生成一个名称为libPods.a的静态库提供给我们自己的工程使用
4.KVO,KVC;
KVO: 注册监听(某个对象的某个属性),实现回调方法,移除监听,底层是利用Runtime,在重写setter方法的时候值发生变化就通知监听者
KVC: 原理是先查有没有setter/getter方法,有则调用,如果没有setter/getter方法则访问成员变量,如果仍未找到,则调用valueForUndefinedKey:和setValue:forUndefinedKey:方法。
KVC好处:支持关联访问:valueForKeyPath: @”a.b”, 修改私有变量:[pageControl setValue:[UIImage imageNamed:@”home_slipt_nor”] forKeyPath:@”_pageImage”], KVC还可以修改只读属性;
5.strong,weak,什么时候会造成循环引用;
相互强引用就会造成循环引用:a对象创建出来引用计数器为1,b对象创建出来引用计数器为1, a强引用b,b的引用计数器为2,b强引用a,a的引用计数器为2,当a和b销毁的时候,引用计数器各减1,各自还保留了一个引用计数,所以都不能被释放,就造成了循环引用。
6.图片缓存,缓存到内存,缓存到本地;
8.include,import区别;
#include会重复引入,#import不会
9.性能优化;
10.MVC,MVVM;iOS中是如何体现MVC的;
11.算法:两个单向链表,头指针分别是H1,H2,其中有一个节点相交,如何找到这个节点。
12.OC的动态性、以及运行时runtime,为什么是动态语言;
13.Http请求GET、POST的区别,Http是在网络中的哪一层;
HTTP/FTP什么的就属于应用层。ARP属于网络层, TCP/UDP属于传输层
14.Notification;
15.垃圾回收,ARC;
16.网络的三次握手;
17.OC中是如何找到一个方法的
消息机制:方法调用的本质实际上就是消息发送机制,当调用一个方法,在运行时方法调用者通过isa指针会找到该类的类对象或者元类对象,再根据方法名得到对应的方法编号,由方法编号去类对象或者元类对象的方法列表中查找方法,如果找到方法,就会去方法区找到对应的方法实现,如果没有找到方法就会去父类中寻找,如果都没有找到方法,则会报错。
18.请解释一下Handoff是什么,HomeKit是什么?
Handoff:我们可以在一部iOS设备的某个应用上开始做一件事,然后在另一台iOS设备上继续做这件事
HomeKit:是用来沟通和控制家庭自动化配件(智能家居?)
19.沙盒机制
iOS应用程序只能在为该程序创建的文件系统中读写文件,不可以去其它地方访问,此区域被称为沙盒
20.VoiceOver是苹果“读屏”技术的名称,属于辅助功能的一部分。VoiceOver可以读出屏幕上的信息,以帮助盲人进行人机交互
21.Cocoa/Cocoa Touch是什么?
Cocoa:针对于OS X平台,包含Foundation和AppKit等框架
Cocoa Touch:针对iOS平台,包含Foundation和UIKit等框架
22.请描述SpriteKit和SceneKit的作用。
游戏开发框架
23.Metal是什么?
它是一个支持GPU加速3D绘图的API。
24.响应者链条
响应者链就是由一系列的响应者对象(UIResponder的子类)构成的一个触摸传递的层次结构。
事件的传递和响应分两个链:
传递链条: 由UIApplication从事件队列取出事件,交由UIWindow处理,UIWindow传递到栈顶控制器View,一直传递到最适合处理的子View
如何判断谁是最合适的子View:1.该View是否能接收事件,2.触摸点是否在自己身上
响应链条: 由子View反向传到父类,最后传到UIApplication,如果没有谁处理,则事件不了了之
- iOS小知识点(三)
- iOS知识点三
- iOS开发知识点总结(三)
- iOS开发知识点汇集三 —— Delegate的使用
- [iOS学习笔记]自学过程中积累的知识点(三)
- iOS 知识点
- IOS知识点
- IOS知识点
- iOS 知识点
- iOS知识点
- iOS知识点
- ios 知识点
- iOS知识点
- ios知识点
- iOS-Runtime知识点整理,ios-runtime知识点
- DBA 知识点归纳(三)
- 小知识点总结三
- Oracle知识点笔记(三)
- 刮奖效果
- 垃圾回收:没在GC Root链上的对象通过finalize()自我拯救的过程
- Java中字符串switch的实现细节
- geoserver与postgreSQL跨IP访问
- (四)django视频笔记(配合第三篇一起食用,味道更佳哦)
- iOS知识点三
- Linux防火墙白名单设置
- bash 点号(.)和source命令的使用
- 课程实践——第一个——小学生测试系统
- 类型信息(part1)
- 好用得计时器
- c/c++自动类型转换
- VirtualBox CentOS6.x——安装增强包
- AR(增强现实)开发者资源汇总