面试题

iOS面试进阶篇(六)

2019-03-18  本文已影响36人  路飞_Luck
目录
  • cocoa touch框架,
  • OC 优缺点
  • 关键词sprintf,strcpy,memcpy,readwrite,readonly,assign,retain,copy,nonatomic
  • http与scoket区别,TCP与 UDP 的区别,POST 与 GET 的区别
  • SVN Git版本管理
  • 内存分区
  • 动画类型
  • UIView与CALayer的区别
  • 数据持久化存储方式
1.死锁的4个必要条件

互斥、请求保持、不可剥夺、环路

2.死锁的处理

鸵鸟策略、预防策略、避免策略、检测与解除死锁

3.cocoa touch框架

iPhone OS 应用程序的基础 Cocoa Touch 框架重用了许多 Mac 系统的成熟模式,但是它更多地专注于触摸的接口和优化。

UIKit 为您提供了在 iPhone OS 上实现图形,事件驱动程序的基本工具,其建立在和 Mac OS X 中一样的 Foundation 框架上,包括文件处理,网络,字符串操作等。

Cocoa Touch 具有和 iPhone 用户接口一致的特殊设计。有了 UIKit,您可以使用 iPhone OS 上的独特的图形接口控件,按钮,以及全屏视图的功能,您还可以使用加速仪和多点触摸手势来控制您的应用。
各色俱全的框架 除了UIKit 外,Cocoa Touch 包含了创建世界一流 iPhone 应用程序需要的所有框架,从三维图形,到专业音效,甚至提供设备访问 API 以控制摄像头,或通过 GPS 获知当前位置。

Cocoa Touch 既包含只需要几行代码就可以完成全部任务的强大的 Objective-C 框架,也在需要时提供基础的 C 语言 API 来直接访问系统。这些框架包括:

功能列表:框架分类

下面是 Cocoa Touch 中一小部分可用的框架:

4.自动释放池是什么,如何工作

当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放.它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。

5.Objective-C的优缺点。

objc优点:

objc缺点:

6.sprintf,strcpy,memcpy使用上有什么要注意的地方。
7.readwrite,readonly,assign,retain,copy,nonatomic 属性的作用

@property是一个属性访问声明,扩号内支持以下几个属性:

8.http和scoket通信的区别。
9.TCP和UDP的区别

TCP全称是Transmission Control Protocol,中文名为传输控制协议,它可以提供可靠的、面向连接的网络数据传递服务。

传输控制协议主要包含下列任务和功能:

总结:TCP注重数据安全,而UDP数据传输快点,但安全性一般

10.你了解svn,cvs等版本控制工具么?

版本控制 svn,cvs 是两种版控制的器,需要配套相关的svn,cvs服务器。

scm是xcode里配置版本控制的地方。版本控制的原理就是a和b同时开发一个项目,a写完当天的代码之后把代码提交给服务器,b要做的时候先从服务器得到最新版本,就可以接着做。 如果a和b都要提交给服务器,并且同时修改了同一个方法,就会产生代码冲突,如果a先提交,那么b提交时,服务器可以提示冲突的代码,b可以清晰的看到,并做出相应的修改或融合后再提交到服务器。

11.什么是push。

客户端程序留下后门端口,客户端总是监听针对这个后门的请求,于是 服务器可以主动像这个端口推送消息。

12.静态链接库

此为.a文件,相当于java里的jar包,把一些类编译到一个包中,在不同的工程中如果导入此文件就可以使用里面的类,具体使用依然是#import “ xx.h”。

13.fmmpeg框架

音视频编解码框架,内部使用UDP协议针对流媒体开发,内部开辟了六个端口来接受流媒体数据,完成快速接受之目的。

14.fmdb框架

数据库框架,对sqllite的数据操作进行了封装,使用着可把精力都放在sql语句上面。

15.320框架

ui框架,导入320工程作为框架包如同添加一个普通框架一样。cover(open) ?flower框架 (2d 仿射技术),内部核心类是CATransform3D.

16.什么是沙盒模型?哪些操作是属于私有api范畴?

某个iphone工程进行文件操作有此工程对应的指定的位置,不能逾越。

iphone沙箱模型的有四个文件夹documents,tmp,app,Library,永久数据存储一般放documents文件夹,得到模拟器的路径的可使用NSHomeDirectory()方法。Nsuserdefaults保存的文件在tmp文件夹里。

17.在一个对象的方法里面:self.name= “object”;和 name =”object” 有什么不同吗?
18.请简要说明viewDidLoad和viewDidUnload何时调用

viewDidLoad在view从nib文件初始化时调用,loadView在controller的view为nil时调用。此方法在编程实现view时调用,view控制器默认会注册memory warning notification,当view controller的任何view没有用的时候,viewDidUnload会被调用,在这里实现将retain的view release,如果是retain的IBOutlet view 属性则不要在这里release,IBOutlet会负责release 。

18.简述内存分区情况
19.队列和栈有什么区别:
20.HTTP协议中,POST和GET的区别是什么?

GET 方法

POST 方法

21.iOS的系统架构

iOS的系统架构分为四个层次

22.控件主要响应3种事件
23.xib文件的构成分为哪3个图标?都具有什么功能。
24.简述视图控件器的生命周期。
25.动画有基本类型有哪几种;表视图有哪几种基本样式。

动画有两种基本类型:隐式动画显式动画

26.实现简单的表格显示需要设置UITableView的什么属性、实现什么协议?

实现简单的表格显示需要设置 UITableView 的 dataSource 和 delegate 属性,实现UITableViewDataSource 和 UITableViewDelegate 协议。

27.Cocoa Touch提供了哪几种Core Animation过渡类型?

Cocoa Touch 提供了 4 种 Core Animation 过渡类型,分别为:

28.UIView与CLayer有什么区别?
29.Quatrz 2D的绘图功能的三个核心概念是什么并简述其作用。
30.iPhone OS主要提供了几种播放音频的方法?
31.使用AVAudioPlayer类调用哪个框架、使用步骤?

AVFoundation.framework

  1. 步骤:配置 AVAudioPlayer 对象;
  2. 实现 AVAudioPlayer 类的委托方法;
  3. 控制 AVAudioPlayer 类的对象;
  4. 监控音量水平;
  5. 回放进度和拖拽播放。
32.有哪几种手势通知方法、写清楚方法名?
-(void)touchesBegan:(NSSet*)touchedwithEvent:(UIEvent*)event;
-(void)touchesMoved:(NSSet*)touched withEvent:(UIEvent*)event;
-(void)touchesEnded:(NSSet*)touchedwithEvent:(UIEvent*)event;
-(void)touchesCanceled:(NSSet*)touchedwithEvent:(UIEvent*)event;
33.CFSocket使用有哪几个步骤。

创建 Socket 的上下文;创建 Socket ;配置要访问的服务器信息;封装服务器信息;连接服务器;

34.Core Foundation中提供了哪几种操作Socket的方法?
35.解析XML文件有哪几种方式?
36.ios 平台怎么做数据的持久化?coredata 和sqlite有无必然联系?coredata是一个关系型数据库吗?

iOS 中可以有四种持久化数据的方式:属性列表(plist)、对象归档、 SQLite3 和 Core Data;

37.tableView 的重用机制?

UITableView 通过重用单元格来达到节省内存的目的: 通过为每个单元格指定一个重用标识符(reuseIdentifier),即指定了单元格的种类,以及当单元格滚出屏幕时,允许恢复单元格以便重用.对于不同种类的单元格使用不同的ID,对于简单的表格,一个标识符就够了.

上一篇 下一篇

猜你喜欢

热点阅读