当前位置: 首页 > 工具软件 > Foundatio > 使用案例 >

ios中foundatio的理解

苍志文
2023-12-01

1 kvo 内部实现原理

a kvo 是基于runtime 机制实现的

b 当某个类的对象第一次被观察时 系统就会在运行期动态的创建该类的一个派生类 当这个派生类中重写基类中任何被观察的setterf

setter方法 实现真正的通知机制 person ---》nskvonotifying_person)

2 是否可以把比较耗时的操作放在nsnotifaction中

如果在异步线程fade通知 那么可以执行比较耗时的操作

如果在主线程发的通知 那么就不可以执行比较耗时的操作


3 FOUNDATION 对象和corefoundation 对象有什么区别

1 foundation 对象时oc 的 coreFoundation 对象是c对象

2 数据类型之间的转换 

 ARC arc __bridge _retain __bridge _transfer

非ARC __bridge

4 不用中间变量 用两种方法 交换A 和B 的值

A  = A+B

B = A-B

A = A-B

或者

A = A^ B 

B = A^B

A = A ^B

5 简单描述下对单例模式设计的理解

节省内存资源 一个应用就一个对象

6 什么是动态  举例说明

在程序运行过程中才执行的操作


7 runtime 实现的机制是怎么用的 一般用于 干嘛 你还记得你需哦使用的相关的头文件 或者某些方法的名称吗

运行时机制 runtime 库里面包含了根类成员变量 方法相关的api 比如获取类里面的所有成员变量 动态改变类的实现方法

为类动态添加 新的方法等 需要导入 《objc/message.h》<objc/runtime.h>

1> runtime 运行时机制 他是一套c语言程序库

2  实际上我们编写的所有的oc代码 最终都成了runtime 库的东西 比如类转成了runtime库里面的结构体数据类型

方法转成了runtime 库里面的c语言程序 平时掉方法 转成了 objc_message send 函数 

3 因此 可以说runtime 是oc的底层事项 是oc的幕后执行者

4 有了runtime 库 能做什么事情呢 runtime 库里面包含了 根类成员变量方法 方法相关的api 比如获取类里面的所有成员变量 

动态改变类的方法实现 为类动态添加新的方法

5 因此 有了runtime 想怎么该就怎么改

8.是否使用Core Text或者Core Image等?如果使用过,请谈谈你使用CoreText或者Core Image的体验。

CoreText          

•   随意修改文本的样式

•   图文混排(纯C语言)

•   国外:Niumb

Core Image(滤镜处理)

* 能调节图片的各种属性(对比度, 色温, 色差等)

 

9NSNotificationKVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocoldelegate(或者delegateArray)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocoldelegate这种东西面试已经面烂了…)

通知比较灵活(1个通知能被多个对象接收, 1个对象能接收多个通知),

 

代理比较规范,但是代码多(默认是1对1)

 

KVO性能不好(底层会动态产生新的类),只能监听某个对象属性的改变, 不推荐使用(1个对象的属性能被多个对象监听,  1个对象能监听多个对象的其他属性)

 

更详细参考:

http://blog.csdn.net/dqjyong/article/details/7685933

 

10Block内部的实现原理

Objective-C是对C语言的扩展,block的实现是基于指针和函数指针

 

11. 有两个数组a,b,大小都为n,数组元素的值任意,无序;

要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小

算法题,要么靠功底,要么百度


 类似资料: