ios foundation

转载 2015年07月06日 22:20:31

1.   KVO内部实现原理

1>KVO是基于runtime机制实现的

2>当某个类的对象第一次被观察时, 系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的 setter 方法。

派生类在被重写的 setter 方法实现真正的通知机制(PersonàNSKVONotifying_Person)

 

2.   是否可以把比较耗时的操作放在NSNotificationCenter

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

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

 

3Foundation对象与Core Foundation对象有什么区别

1> Foundation对象是OC的,Core Foundation对象是C对象

2> 数据类型之间的转换

l ARC:__bridge_retained__bridge_transfer

l ARC: __bridge

 

4.不用中间变量,用两种方法交换AB的值

A = A + B

B = A - B

A = A - B

或者

A = A^B;

B = A^B;

A = A^B;

 

5.简单描述下对单利模式设计的理解?

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

 

6.什么是动态,举例说明

1> 在程序运行过程才执行的操作

 

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

运行时机制,runtime库里面包含了跟类、成员变量、方法相关的API,比如获取类里面的所有成员变量,为类动态添加成员变量,动态改变类的方法实现,为类动态添加新的方法等需要导入<objc/message.h><objc/runtime.h>

1>runtime,运行时机制,它是一套C语言库

2>实际上我们编写的所有OC代码,最终都是转成了runtime库的东西,比如类转成了runtime库里面的结构体等数据类型,方法转成了runtime库里面的C语言函数,平时调方法都是转成了objc_msgSend函数(所以说OC有个消息发送机制)

3>因此,可以说runtime是OC的底层实现,是OC的幕后执行者

4>有了runtime库,能做什么事情呢?runtime库里面包含了跟类、成员变量、方法相关的API,比如获取类里面的所有成员变量,为类动态添加成员变量,动态改变类的方法实现,为类动态添加新的方法等

5>因此,有了runtime,想怎么改就怎么改

 

8.是否使用CoreText或者Core Image等?如果使用过,请谈谈你使用Core Text或者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元素的和之间的差最小

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

IOS之Foundation框架

//内存管理原则(配对原则):只要出现了new,alloc,retain方法,就要配对出现release,autorelease //对象存入到自动释放池中,当这个池子被销毁的时候他会对池子中所有的...
  • wen942467928
  • wen942467928
  • 2016年05月15日 22:32
  • 3992

ios_Cocoa框架 “Foundation”和“UIKit”的区别

Cocoa Cocoa不是一种编程语言(它可以运行多种编程语言),它也不是一个开发工具(通过命令行我们仍然可以开发Cocoa程序),它是创建Mac OS X和IOS程序的原生面向对象API,为这...
  • hw_2396611405
  • hw_2396611405
  • 2015年12月05日 11:04
  • 4517

iOS框架之两个极为重要的框架————Foundation和UIKit的相关内容以及一些其他Cocoa相关内容

Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。 1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。 是什么因素使一个程序成为...
  • Lerryteng
  • Lerryteng
  • 2016年04月21日 11:14
  • 2158

苹果的CoreFoundation部分源代码

地址在http://opensource.apple.com/source/CF/CF-855.14/
  • heikefangxian23
  • heikefangxian23
  • 2016年04月07日 15:06
  • 1565

Cocoa、Foundation、UIKit、Objective-c、XCode、Interface Builder的概念

Cocoa是在Mac OS X系统上原生的一个编译环境。他包含两个框架,其实就是一系列的类库,Foundation和AppKit。在你的iPhone等掌上设备上,使用的则是他的一个子类 - Cocoa...
  • hou_cocoa
  • hou_cocoa
  • 2011年02月16日 10:56
  • 7331

【IOS学习】AV Foundation 学习笔记

HAHAHA 应用场景: 进行媒体回放时,应用必须创建一个AVPlayerLayer屠城,并将视频数据渲染到这个图层 需要通过屏幕上得控件,对媒体进行暂停、停止或者快捷操作,需要自己创建空间...
  • mangosnow
  • mangosnow
  • 2014年07月13日 23:28
  • 5120

OC系列之Foundation框架

一 Foundation框架介绍 框架是由许多类、方法、函数、文档按照一定的逻辑组织起来的集合。 Foundation框架中的类Foundation框架允许使用一些基本对象,如数字和字符串,以及一些对...
  • ab20514
  • ab20514
  • 2015年10月04日 17:25
  • 644

Xcode突然出现could not build module foundation错误

Xcode6创建项目时并没有.pch预编译文件,如下图添加预编译文件 在预编译文件中添加若干头文件引用后,出现could not build module foundation错误 解决方案:   ...
  • zhuoyuetec
  • zhuoyuetec
  • 2015年02月05日 11:11
  • 12761

Xcode6不能自动引入的UIKit、Foundation的解决方法

Xcode5中创建一个工程的时候,系统会自动创建一个以以工程名为名字的pch(Precompile Prefix Header)文件,开发的过程中可以将广泛使用的头文件以及宏包含在该文件下,编译器就会...
  • RIXIAOYUE
  • RIXIAOYUE
  • 2014年10月22日 11:15
  • 3106

iOS开发总结之 Foundation框架总结

1.创建nsstring基本方式 #import int main(int argc, const char * argv[]) { //如何创建字符串对象 /* 通过...
  • sunnyboy9
  • sunnyboy9
  • 2016年05月30日 23:37
  • 628
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios foundation
举报原因:
原因补充:

(最多只允许输入30个字)